c++ - ifdef : is "#ifdef A && B" the same as "#if defined(A) && defined(B)"? 中的 bool 值

标签 c++ c-preprocessor conditional-compilation

在 C++ 中,是这样的:

#ifdef A && B

同:

#if defined(A) && defined(B)

?

我以为不是,但我无法通过我的编译器 (VS2005) 找到差异。

最佳答案

它们不一样。第一个不起作用(我在 gcc 4.4.1 中测试过)。错误信息是:

test.cc:1:15: warning: extra tokens at end of #ifdef directive

如果要检查是否定义了多个事物,请使用第二个。

关于c++ - ifdef : is "#ifdef A && B" the same as "#if defined(A) && defined(B)"? 中的 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1312132/

相关文章:

c++ - 在类头文件中声明一个字符串数组 - 编译器认为字符串是变量名?

variables - 如何定义一个在调用后保留其作用域的宏

c-preprocessor - 如何在 Code Composer Studio 4 中添加预处理器定义?

ios - Xcode 在为 iPhone 编译时设置了什么#defines

rust - 如何根据编译功能标志为枚举添加生命周期

c++ - 给定一个指向 C++ 对象的指针,调用静态成员函数的首选方法是什么?

c# - 如何将 C# 数组传递给 C++ 并将其返回给 C# 以及其他项目?

c++ - 我的代码出现内存泄漏问题,我是新手

c - 使用 C 预处理器处理嵌套 header

c++ - C++程序如何获得debug/release条件编译