【发布时间】:2016-09-02 04:51:20
【问题描述】:
我有在编译时标志中使用以下语法的习惯:
#if (defined(A) & defined(B))
通常建议我使用&& 如下:
#if (defined(A) && defined(B))
我知道这两个运算符之间的区别,在普通代码中 && 会短路。但是,以上都由编译器处理。我用什么重要吗?是否因为不评估第二个define() 而对编译时间的影响很小?
【问题讨论】:
-
当两半为0或1时,没有区别。
-
不要编写不必要地掩盖其正在做的事情的代码。 C++ 不是 Java。
-
@PeteBecker,我的代码如何掩盖它在做什么?
-
@Catsunami -- 代码使用按位运算符进行逻辑与。
-
@PeteBecker,我不确定这如何使它变得晦涩难懂。它在 boolean 值上使用按位与,这非常清楚。
标签: c++ c compilation