使用逻辑||用常数操作数

时间:2014-09-07 01:24:51

标签: ios xcode cocoa cocoa-touch

我有一些这样的定义:

#define flag   YES
#define prod   YES
#define test   NO

这些用于测试。

我有一段代码

BOOL testMode = flag || prod || test;

Xcode抱怨此消息:使用逻辑||使用常量操作数...使用按位

修复它

但我正在做的操作是合乎逻辑的,而不是按位的。

如果3个状态中的一个为YES,我希望testMode为YES。

任何线索?

3 个答案:

答案 0 :(得分:4)

以下代码在没有警告的情况下获得相同的结果。

BOOL testMode = flag | prod | test;

这可能是一个让你烦恼的问题......一个不必要的警告或使用按位|运算符来进行什么是逻辑运算。该警告似乎旨在通过位字段错误地使用逻辑运算符来捕获人。当你试图设置第2位时,你不会不小心写bitField || 0x4

答案 1 :(得分:2)

我更喜欢这个:

BOOL testMode = (BOOL)flag || (BOOL)prod || (BOOL)test;

答案 2 :(得分:0)

警告消失:

#define flag   true
#define prod   true
#define test   false