再现低级错误,该打!

#ifdef __cplusplus

extern “c" {

#endif

 

...

 

#ifdef __cplusplus

}

#endif

 

 

 

看着好像没有啥错误,其实应该是extern "C"(大写C),该打!

 

 编译时一直提示错误:

dlist.h:8: error: language string ‘"c"’ not recognize

 

 

还发现一个gcc和g++的问题:

gcc编译.c文件时,按照c编译器编译(简单的函数符号定义)
gcc编译.cpp文件时,按照c++编译器编译(生成重载的函数符号定义)

g++编译.c文件时,按照c++编译器编译(生成重载的函数符号定义)
g++编译.cpp文件时,按照c++编译器编译(生成重载的函数符号定义)

 

只要编译.cpp文件,不管是gcc还是g++,就会定义宏__cplusplus

 

你可能感兴趣的:(再现低级错误,该打!)