C预处理器测试多个宏的定义

Lef*_*ris 43 c logical-operators c-preprocessor preprocessor-directive

我搜索了网站,但没有找到我正在寻找的答案,所以这里是一个非常快速的问题.

我想做那样的事情:

#ifdef _WIN32 || _WIN64
     #include <conio.h>
#endif
Run Code Online (Sandbox Code Playgroud)

我该怎么办?我知道_WIN32是为32位和64位窗口定义的,所以我可以用于Windows检测.我更感兴趣的是我是否可以使用预处理程序指令这样的逻辑运算符,如果是,如何,因为上述方法不起作用.

用gcc编译我得到:

警告:#ifdef指令结束时的额外令牌,它基本上只需要第一个MACRO并忽略其余的.

Aar*_*paa 66

尝试:

#if defined(_WIN32) || defined(_WIN64)
// do stuff
#endif
Run Code Online (Sandbox Code Playgroud)

定义的名称是否被定义,让宏测试应用逻辑运算符的结果.


cub*_*ube 7

你必须使用#if和特殊的操作员defined