#ifdef __cplusplus
// C++ code
#else
// C code
#endif
结构就是这样。
我的问题是,如何实际触发#ifdef
?
我的意思是,在节目中?我写的代码可以打开#ifdef
吗?
例如,在这种情况下。 就是那个
#define __cplusplus
会打开它吗?
答案 0 :(得分:19)
“#define __cplusplus”
会让它开启吗?
是的,它会“让它开启”。
__cplusplus
应由C ++编译器自动定义。 C ++使用不同的name mangling和通常用于使C头与C ++兼容的宏:
#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif
答案 1 :(得分:15)
只需使用C ++编译器进行编译,然后在这种情况下自动定义__cplusplus
。
答案 2 :(得分:13)
C ++标准强制执行__cplusplus
将始终在C ++程序中定义。 C标准显然没有。这意味着用户需要不费力地启用此机器。
答案 3 :(得分:8)
C ++编译器自动定义它。
由于它以两个连续的下划线开始,因此保留。您不允许自己定义它(即尝试这样做会给出未定义的行为)。