问题描述
我正在尝试实现/理解堆栈,但对于在应该表示堆栈的结构内声明的某些内容,我不断收到“未声明的值”
#define EmptyTOS ( -1 )
#define MinStackSize ( 5 )
typedef struct StackRecord *Stack;
struct StackRecord
{
int Capacity;
int TopOfStack;
int *Array;
};
Stack CreateStack( int MaxElements )
{
Stack S;
S = malloc( sizeof( struct StackRecord ) );
S->Array = malloc( sizeof( int ) * MaxElements );
S->Capacity = MaxElements;
MakeEmpty( S );
return S;
}
void MakeEmpty( Stack S ){
S->TopOfStack = EmptyTOS;
}
void Push( int X,Stack S ){
S->Array[++TopOfStack] = X;
}
int main(){
Stack s1 = CreateStack(10);
return 0;
}
如果我尝试编译这个,我得到:在函数‘Push’中:错误:‘TopOfStack’未声明 我不明白为什么
解决方法
这是因为未声明 Action nah = () => {
logic logic
logic logic
logic logic
};
Action yea = () => {
logic logic
myBool = false;
logic logic
};
var myAction = doIt ? yea : nah;
。
如果要访问TopOfStack
指向的对象的成员变量,应该写S
。