如何编写使用#ifdef的宏函数

时间:2012-05-27 00:55:54

标签: c gcc macros

可以写这样的东西吗?

#define ISWINDOWS() (#if defined(_WIN32) || defined(_WIN64) \
                        1 \
                   #elif  \
                        0 \
                  #endif)

然后:

void foo() {
  if(ISWINDOWS()) {
   // ..
  } else {
   // ...  
 }
}

1 个答案:

答案 0 :(得分:2)

您无法在宏中定义宏。你可以做到这一点,但它可能不是你想要的:

#if defined(_WIN32) || defined(_WIN64)
    #define ISWINDOWS() 1
#elif 
    #define ISWINDOWS() 0
#endif