亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C/C++函數調用棧的實現方法

2020-01-26 15:11:45
字體:
來源:轉載
供稿:網友

本文實例講述了C/C++函數調用棧的實現方法??捎糜趯崿F簡單的腳本解釋器。分享給大家供大家參考。具體實現方法如下:

頭文件聲明部分:

復制代碼 代碼如下:
#pragma once
const int BUFFERSIZE = 1024;
const int growfactor = 2;
 
// this stack is used as call stack.
class TStack{
private:
size_t size;   // the stack length
size_t pos;    // the stack top position   
char *buffer;  // the buffer

private:
void push(void* D, size_t bytecount);  // the implementation of push
void* pop(size_t bytecount);   // the implementation of pop
public:
TStack(size_t _size = BUFFERSIZE, size_t _pos = 0);  // initialize
TStack(const TStack& o);  // copy
TStack& operator=(const TStack& o);  // assignment
void pushInt(int i) { push(&i, sizeof(int)); }  // push an int
void pushLong(long l) { push(&l, sizeof(long)); }  // push a long
void pushfloat(double f) { push(&f, sizeof(f));}  // push  a double
void pushPointer(void* p){ push(p, sizeof(p)); }
// int
int popInt() { return *(int *)pop(sizeof(int));}  // pop an int
long popLong() { return *(long *)pop(sizeof(long)); }  // pop an int   
double* popfloat() { return (double*)pop(sizeof(double)); }  // pop a double
void* popPointer() { return pop(sizeof(void*)) ; }
void clear() { pos = 0; } 
};


 
實現部分:
 
復制代碼 代碼如下:
#include "stdafx.h"
#include "TStack.h"
#include "new.h"
 
void TStack::push( void* D, size_t bytecount )
{
// if memory is not enough
// if run under multithread envionment,
// a lock or critical section should be added
if (pos + bytecount > size)
{   
  size_t oldsize = size;
       size *= growfactor;  
  char *newbuffer = new char[size];
  memcpy(newbuffer, buffer, oldsize);
  delete buffer;
  buffer = newbuffer;   
}
memcpy(buffer+pos, D, bytecount);
pos += bytecount;
}
 
void* TStack::pop( size_t bytecount )
{
// need synchronization for multithread environment
pos -= bytecount;
return &buffer[pos];
}
 
TStack::TStack( size_t _size , size_t _pos )
:size(_size),
pos(_pos),
buffer(new char[size])
{
}
 
TStack::TStack( const TStack &O )
:size(O.size),
pos(O.pos)
{
   buffer = new char[size];
   if (buffer != NULL)
   {
  memcpy(buffer, O.buffer, size);
   }
}
 
TStack& TStack::operator=( const TStack& O )
{
if (this == &O)
 return *this;     
    this->size = O.size;
this->pos = O.pos;
 
if (buffer != NULL)
{
delete buffer;
}
    buffer = new char[this->size];
if (buffer != NULL)
{
      memcpy(buffer, O.buffer, this->size);
}
return *this;
}

希望本文所述對大家的C++程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久天天躁狠狠躁老女人| 欧美国产激情18| 亚洲日本欧美中文幕| 久久99久久久久久久噜噜| 91视频国产一区| 日本精品一区二区三区在线播放视频| 成人精品久久久| 色噜噜狠狠狠综合曰曰曰| 91久久久久久久一区二区| 亚洲石原莉奈一区二区在线观看| 青青久久aⅴ北条麻妃| 一本大道亚洲视频| 久久影视电视剧免费网站| 亚洲福利精品在线| 亚洲裸体xxxx| 亚洲专区在线视频| 裸体女人亚洲精品一区| 在线不卡国产精品| 青青a在线精品免费观看| 成人高清视频观看www| 一本大道久久加勒比香蕉| 欧美大片免费观看在线观看网站推荐| 岛国精品视频在线播放| 亚洲偷欧美偷国内偷| 久久高清视频免费| 国产亚洲一区二区精品| 久久视频这里只有精品| 亚洲免费伊人电影在线观看av| 91精品国产高清自在线看超| 久久999免费视频| 国产精品69精品一区二区三区| 亚洲国产精品va| 国产亚洲美女精品久久久| 日韩美女视频免费看| 2019中文字幕在线| 亚洲最大成人在线| 中文字幕日韩在线播放| 96精品久久久久中文字幕| 中文字幕亚洲一区| 欧美午夜www高清视频| 欧美电影在线免费观看网站| 国产精品日韩在线播放| 久久国产精品影视| 国产精品女视频| 国产一区av在线| 亚洲精品99久久久久| 性欧美在线看片a免费观看| 中文字幕亚洲一区二区三区| 久久精品91久久香蕉加勒比| 最近2019免费中文字幕视频三| 日韩最新免费不卡| 欧美一区二区三区四区在线| 亚洲香蕉成人av网站在线观看| 色偷偷综合社区| 亚洲影院高清在线| 国产午夜精品一区二区三区| 精品国产依人香蕉在线精品| 国产一区二区三区在线播放免费观看| 中文字幕综合在线| 精品视频www| 亚洲iv一区二区三区| 国产日韩在线看| 亚洲综合自拍一区| 欧美国产在线电影| 欧美精品中文字幕一区| 欧美一级黑人aaaaaaa做受| 91在线观看欧美日韩| 色黄久久久久久| 性色av一区二区三区在线观看| 九九精品在线播放| 日韩中文字幕精品视频| 成人在线视频福利| 亚洲国产精品久久| 亚洲精品小视频| 久久成人精品视频| 大荫蒂欧美视频另类xxxx| 日韩中文字幕在线免费观看| 一本一道久久a久久精品逆3p| 国产一区二区色| 国产成人一区二区| 亚洲精品自拍视频| 日韩经典第一页| 国产精品嫩草影院久久久| www高清在线视频日韩欧美| 日本高清久久天堂| 国产精品99久久99久久久二8| 一区国产精品视频| 中文字幕亚洲精品| 97在线视频精品| 亚洲天堂色网站| 亚洲国产欧美一区二区三区同亚洲| 亚洲第一精品夜夜躁人人躁| 中文字幕久精品免费视频| 亚洲女人天堂视频| 九九热这里只有精品6| 中文字幕亚洲激情| 欧美一二三视频| 欧美一区二区三区免费视| 亚洲成人网av| 欧美日韩精品二区| 一本色道久久综合狠狠躁篇的优点| 国产剧情久久久久久| 国产成+人+综合+亚洲欧洲| 这里只有视频精品| 欧美日韩国产二区| 狠狠躁夜夜躁人人爽天天天天97| 日韩电影免费观看中文字幕| 川上优av一区二区线观看| 91日韩在线播放| 亚洲国产日韩一区| 亚洲男子天堂网| 国产手机视频精品| 国产精品视频久久久| 国产69久久精品成人| 中文字幕日韩欧美在线| 久久久久久久久久婷婷| 欧美日韩在线视频一区| 免费91麻豆精品国产自产在线观看| 亚洲福利视频二区| 黄色一区二区在线观看| 日本成人黄色片| 亚洲午夜国产成人av电影男同| 欧美激情视频一区二区| 在线日韩欧美视频| 国产一区二区激情| 国产精品久久久久久久午夜| 国产精品久久国产精品99gif| 91精品视频免费观看| 国产精品久久久久久久久久ktv| 亚洲欧洲国产精品| 国产精品视频自在线| 韩国欧美亚洲国产| 亚洲黄页网在线观看| 国产精品久久网| 一区二区三区视频免费| 国产精品视频资源| 日韩精品在线视频| 欧美午夜精品久久久久久久| 国产精品香蕉国产| 中文字幕欧美日韩va免费视频| 国产亚洲aⅴaaaaaa毛片| 成人在线视频网站| 日韩亚洲在线观看| 91欧美激情另类亚洲| 国产一区二区激情| 日韩美女写真福利在线观看| 狠狠躁夜夜躁人人爽天天天天97| 成人精品视频99在线观看免费| 成人黄色在线观看| 亚洲一区二区在线| 国产精品久久久久久久久久久久| 日韩中文字幕在线视频播放| 国产一区二区三区三区在线观看| 亚洲第一色在线| 中文亚洲视频在线| 8x海外华人永久免费日韩内陆视频| 久久全国免费视频| 一本久久综合亚洲鲁鲁| 久久av红桃一区二区小说| 日韩av在线影视| 国产欧美久久一区二区| 国产91精品最新在线播放| 成人激情在线观看| 最新日韩中文字幕|