C – 在’=’之前的预期表达式…在没有’=’的行上

我疯狂地试图弄清楚这个与现实/我的代码没有明显联系的错误信息。 我一直在这里搜索并得出一个结论:你会讨厌被typedef隐藏的指针。 对不起,这是我无法控制的 – 教授提供了这样的代码。 我正在编辑问题中指定的代码。 我正在弹出整个节点以避免每个推送function上的malloc调用并将它们存储在辅助堆栈中。 MakeEmptyS函数使用INITIAL_SIZE节点初始化Stack。 GrowEmptyS向空节点堆栈添加更多节点

stack.c具有以下function:

void MakeEmptyS( Stack S ) { PtrToNode tmp; if ( S == NULL ) Error( "Must use CreateStack first" ); else { GrowEmptyS( S, INITIAL_SIZE); while (!IsEmptyS( S) ) { tmp = TopopNode( S ); PushEmpty( S, tmp); } } } 

我收到此错误:“Stack.c:53:22:错误:’=’标记之前的预期表达式”,其中第53行是GrowEmptyS(S,INITIAL_SIZE);

作为参考,这里是Grow函数:

  void GrowEmptyS( Stack S, int NumToAdd ) { int i; PtrToNode TmpCell; for( i = 0; i < NumToAdd; i++ ) { TmpCell = malloc( sizeof(struct Node)); if ( TmpCell == NULL ) FatalError( "Out of Space!!!"); else PushEmpty(S,TmpCell); } } 

我可能错了,但可能是你定义的

 #define INITIAL_SIZE = 1024 

例如。

你应该删除=。

正确的定义是

 #define INITIAL_SIZE 1024 

作为建议,函数参数应该从小写开始,而不是大写:)

 void GrowEmptyS(Stack stack, int numToAdd) 

更容易阅读。