可以这样写吗?
#define ISWINDOWS() (#if defined(_WIN32) || defined(_WIN64) \
1 \
#elif \
0 \
#endif)
然后:
void foo() {
if(ISWINDOWS()) {
// ..
} else {
// ...
}
}
最佳答案
您不能在宏中定义宏。您可以这样做,但这可能不是您想要的:
#if defined(_WIN32) || defined(_WIN64)
#define ISWINDOWS() 1
#elif
#define ISWINDOWS() 0
#endif
关于c - 如何编写使用#ifdef 的宏函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10770892/