指针的引用古怪的问题

换大米 发布于 2012/08/08 11:37
阅读 456
收藏 1

代码如下:

#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("%d\n",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++上则编译通过没错误

加载中
0
中山野鬼
中山野鬼
一个C++,一个C。为什么有人就喜欢混一起玩呢?你上面的写法完全是C的风格,那你就老实的用C的语言。C++是面向对象的,如果用C++,你就安心用面向对象折腾自己的设计。
0
情天大圣
情天大圣
C语言里没有引用,即&
0
魔方帅帅
魔方帅帅
C没有引用,并且判断  Stack为空的方法有问题。
0
echor
echor
改成null 小写
返回顶部
顶部