为什么std::cout以下代码中的行仍然运行A并且B不同?
#include <iostream>
enum T { A = 1, B = 2 };
// #define A 1
// #define B 2
int main() {
#if (A == B)
std::cout << A << B;
#endif
}
Run Code Online (Sandbox Code Playgroud)
如果我使用#define(如注释掉),我没有得到任何输出,如我所料.
问题的原因:
我希望有一个模式选择器用于某些测试代码,我可以通过在顶部注释/取消注释行来轻松更改模式:
enum T { MODE_RGB = 1, MODE_GREY = 2, MODE_CMYK = 3 };
// #define MODE MODE_RGB
#define MODE MODE_GREY
// #define MODE MODE_CMYK
int main() {
#if (MODE == MODE_RGB)
// do RGB …Run Code Online (Sandbox Code Playgroud)