如何检查(通过预处理器)C源文件是否正在编译为C++代码

Wil*_*iam 3 c++ gcc c-preprocessor

问题标题应该说明一切,但这里有一个我正在寻找的东西的例子:

#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
Run Code Online (Sandbox Code Playgroud)

什么是标识符?它严重困扰着我,因为我知道我之前已经看过这样做的代码.

顺便说一句,我正在使用GCC.

(我很惊讶我在某个地方找不到复制件.如果其他人可以找到一个复制件,请随意重新定向我并将其作为一个骗子关闭.)

fra*_*ast 10

#ifndef __cplusplus
Run Code Online (Sandbox Code Playgroud)

如果我没记错的话.

  • +1 你没记错。应该是威廉想要的#ifndef。 (2认同)

pmg*_*pmg 5

标识符是 __cplusplus

#ifdef __cplusplus
#error NO C++ PLEASE
#endif
Run Code Online (Sandbox Code Playgroud)