
建立自己的Z-stack程序方法:
把TI的ZStack-CC2530-2.5.1a文件夹下所有东西拷贝到自己的文件夹下,然后把里面除了Components、Project、Tools文件夹留下其他全部删除。
然后进入project文件夹中zstack文件夹,把除了Library、Samples、Tools、ZMian之外的所有文件夹删除。
重新命名Samples文件夹为MyCoordinator。
进入MyCoordinator文件夹,只留下SampleApp文件夹,并改名为Coordinator。
#ifndef Stack_#define Stack_
template<class T>
class Stack {
// LIFO objects
public:
Stack(int MaxStackSize = 10)
~Stack() {delete [] stack}
bool IsEmpty() const {return top == -1}
bool IsFull() const {return top == MaxTop}
T Top() const
Stack<T>&Add(const T&x)
Stack<T>&Delete(T&x)
private:
int top // current top of stack
int MaxTop// max value for top
T *stack // element array
}
template<class T>
Stack<T>::Stack(int MaxStackSize)
{// Stack constructor.
MaxTop = MaxStackSize - 1
stack = new T[MaxStackSize]
top = -1
}
template<class T>
T Stack<T>::Top() const
{// Return top element.
if (IsEmpty()) throw OutOfBounds()// Top fails
return stack[top]
}
template<class T>
Stack<T>&Stack<T>::Add(const T&x)
{// Add x to stack.
if (IsFull()) throw NoMem()// add fails
stack[++top] = x
return *this
}
template<class T>
Stack<T>&Stack<T>::Delete(T&x)
{// Delete top element and put in x.
if (IsEmpty()) throw OutOfBounds()// delete fails
x = stack[top--]
return *this
}
分类: 电脑/网络 >>程序设计 >>其他编程语言问题描述:
初学微机,每次编写程序时总要加入堆栈段,但是我不知道它在程序运行起什么作用。望指教!
解析:
因为CPU要使用堆栈,主要是子程序调用call和ret指令,使用堆栈来存储返回地址,调用子程序的时候,后调用的子程序先返回,而且还可能嵌套调用甚至递归调用,所以必须使用先进后出的数据结构stack来实现返回地址的存储。
没有堆栈stack,就无法实现函数/子程序调用,
还有高级语言都用stack来存储局部变量和参数,汇编也可以用,但是比较麻烦。汇编经常使用stack来保存寄存器的值,PUSH和POP指令比较好用
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)