【发布时间】:2017-07-13 15:59:49
【问题描述】:
在 C、C++、Objective-C 的宏中使用逻辑异或运算符 ^^ 有什么技巧吗?
我试过直接在Objective-C中应用^^,它不起作用。
已编辑:让我澄清一下我的答案。
我想要的是在宏中使用异或运算符。并不是说“如何通过宏定义异或运算符。
也就是说,我想要类似的东西
#if defined(x) ^^ TARGET_OS_IOS ^^ __cplusplus
【问题讨论】:
-
C 或 C++ 中没有逻辑异或运算符
-
!=怎么样? -
只要掌握最低限度的 C 编程知识,您就可以在不到 10 秒的时间内自己编写这样的运算符。
#define XOR(a,b) ( ((a)!=0) ^ ((b)!=0) ). -
@Lundin:我的问题是使用逻辑异或操作 IN MACRO。我也想通过多个文件使用它。用你的解决方案,我必须包含包含那个宏的头文件,当然效率不高
-
@tranvansang 宏由预处理器评估,使其非常高效。但是您没有有 将其实现为宏,您可以简单地在代码中的任何位置使用
((a)!=0) ^ ((b)!=0)。它产生完全相同的机器代码。
标签: c++ objective-c c macros logical-operators