ifdef 中的布尔值:是“#ifdef A &&” B”与“#if Defined(A) &&”相同定义(B)”?
在 C++ 中,这是:
#ifdef A && B
与: 相同吗
#if defined(A) && defined(B)
?
我以为不是,但我无法找到我的编译器(VS2005)的差异。
In C++, is this:
#ifdef A && B
the same as:
#if defined(A) && defined(B)
?
I was thinking it wasn't, but I haven't been able to find a difference with my compiler (VS2005).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
它们不一样。第一个不起作用(我在 gcc 4.4.1 中测试过)。错误消息是:
如果您想检查是否定义了多个内容,请使用第二个。
They are not the same. The first one doesn't work (I tested in gcc 4.4.1). Error message was:
If you want to check if multiple things are defined, use the second one.
条件编译
Conditional Compilation
以下结果相同:
1.
2.
The following results are the same:
1.
2.
对于那些可能正在寻找与 OP 略有不同的示例 (UNIX/g++) 的人,这可能会有所帮助:
`
For those that might be looking for example (UNIX/g++) that is a little different from the OP, this may help:
`
截至 VS2015,以上都不起作用。正确的指令是:
在此处查看更多内容
As of VS2015 none of the above works. The correct directive is:
see more here