C不支持枚举类型在使用时省略enum
今天碰到一个问题,就是纯C编程的时候 enum Bool{True,False};后,每次使用Bool类型的时候需要前缀enum,比如enum Bool rain;否则报错。
有趣的是,DevC++和Codeblock用的都是GCC编译器,但是DevC++就不需要声明类型的时候添加enum字样。微软的VC编译器也需要添加enum.原因就是DevC++使用的是GCC的C++编译器,而Codeblock和VC的编译器我在建立工程的时候都指定其按照C的形式变异源文件,而纯C的编译器是对枚举类型的使用时严格要求有enum标示的。
代码如下:
//main.c
#define MAX_NUM 30
enum BOOL{False,True};
typedef struct
{
int arcs[MAX_NUM][MAX_NUM];
int vexnum,arcnum;
}Graph;
void ShortestPath_Floyd(Graph,enum BOOL[][MAX_NUM][MAX_NUM],int[][MAX_NUM]);
int main()
{
return 0;
}
C不支持引用参数另外,如果使用引用作为参数的话,声明时不能用引用标记,要用指针,C不支持引用参数,C++支持。