问题标题应该说明一切,但这里有一个我正在寻找的东西的例子:
#ifndef THE_IDENTIFIER_THAT_WOULD_INDICATE_BEING_COMPILED_AS_CPLUSPLUS
/*
* Example of something that would matter.
*/
typedef enum _bool bool;
enum _bool { false, true };
#endif
标识符是什么?它严重地困扰着我,因为我知道我之前已经看到过这样做的代码。
顺便说一句,我正在使用GCC。
(我很惊讶我在SO的某个地方找不到副本。如果其他人可以找到一个,请随意重新定向我并将其作为一个骗局关闭。)
答案 0 :(得分:10)
#ifndef __cplusplus
如果我没记错的话。
答案 1 :(得分:4)
标识符为__cplusplus
#ifdef __cplusplus
#error NO C++ PLEASE
#endif
答案 2 :(得分:2)
#ifdef __cplusplus
有一些非常古老的编译器(早期版本的cfront和几个端口)它是c_pluplus
,IIRC。
答案 3 :(得分:2)
#ifdef __cplusplus
答案 4 :(得分:1)
您要查找的标识符是__cplusplus
,可以像这样使用:
#ifdef __cplusplus
// Code being compiled as C++.
#endif
答案 5 :(得分:1)
#ifdef __cplusplus
我认为文件扩展名也很重要,如果给C ++编译器一个.c文件,它会将它编译为C代码。我没有什么可以支持的。