在 struct 内部声明的值的“未声明”值

问题描述

我正在尝试实现/理解堆栈,但对于在应该表示堆栈的结构内声明的某些内容,我不断收到“未声明的值”

#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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...