指针的引用古怪的问题
代码如下:
#define False 0 #define True 1 #define SIZE 10 typedef int Bool; typedef int ElemType; typedef struct Node{ ElemType key; struct Node * next; struct Node * prev; } *Stack,Elem; Bool IsEmpty(Stack &stack){ if(stack==NULL) return True; return False; }
gcc测试代码:
#include <stdio.h> #include "stack2.h" int main(){ Stack stack=NULL; printf("%dn",IsEmpty(stack)); return 0; }
dev c++测试代码:
int main(int argc, char *argv[]) { Stack s=NULL; cout<<IsEmpty(s)<<endl; system("PAUSE"); return EXIT_SUCCESS; }
分别使用gcc和devc++编译,在gcc下编译报错
inc/stack2.h:28:20:error: expected ';', ',' or ')' before '&' token 也就是Bool IsEmpty(Stack &stack)
而在devc++上则编译通过没错误
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
改成null 小写
C没有引用,并且判断
Stack为空的方法有问题。
C语言里没有引用,即&
一个C++,一个C。为什么有人就喜欢混一起玩呢?你上面的写法完全是C的风格,那你就老实的用C的语言。C++是面向对象的,如果用C++,你就安心用面向对象折腾自己的设计。