程序中的错误杂散'#'

Error stray '#' in program

本文关键字:错误 程序      更新时间:2023-10-16

我想根据是否使用-std=c++0x来定义一个宏。如果我尝试下面的宏,我有错误error stray '#' in program.

下面的代码是否正确/是否允许C++在#define中使用预处理器#if / #endif

   #define DEF_ME (p) 
   #if  __GXX_EXPERIMENTAL_CXX0X__ 
   #endif

我在 Linux 中使用 g++ 4.4.7。

下面的代码是否不正确/是否允许C++在#define中使用预处理器#if/#endif

不,这是不允许的。但是您可以使用相反的方法来获得相同的结果:

#if  __GXX_EXPERIMENTAL_CXX0X__
#   define DEF_ME (p) one way
#else
#   define DEF_ME (p) another way
#endif