我搜索了网站,但没有找到我想要的答案,所以这是一个非常快速的问题。
我正在尝试做类似的事情:
#ifdef _WIN32 || _WIN64
#include <conio.h>
#endif
我怎么能做这样的事情?我知道_WIN32是为32位和64位窗口定义的,所以我可以用于Windows检测。我更感兴趣的是我是否可以使用类似于预处理程序指令的逻辑运算符,如果是,如何,因为上述方法不起作用。
使用gcc编译我得到:
警告:#ifdef指令末尾的额外令牌,它基本上只占用第一个MACRO并忽略其余的。
答案 0 :(得分:66)
答案 1 :(得分:7)
您必须使用#if
和特殊运算符defined
答案 2 :(得分:5)
您必须使用'if defined'而不是'ifdef'
#if defined _WIN32 || defined _WIN64
oops错字,你需要第二个'已定义',这就是你的测试失败的原因。 可以把它想象成'定义的_WIN32'是一个返回true / false的单个语句
答案 3 :(得分:4)
我认为应该可以这样:
#if defined block1 || defined block2 /*or any other boolean operator*/
/*Code*/
#endif
更多信息here
答案 4 :(得分:1)
使用已定义:
#if defined(A) || defined(B)
#include <whatever.h>
#endif