在这里,SIMPLE_EX2与0x0040进行“或”运算,整个过程作为SIMPLE_EX1的地址提供。我的理解正确吗?
#define SIMPLE_EX1 (0x0040 | SIMPLE_EX2)
最佳答案
|
不是C中的管道标志。这有点明智。所以这个表达式:
0x0040 | SIMPLE_EX2
只需获取
SIMPLE_EX2
的值并将其第7位(从右)设置为1。不太可能,但请注意,如果
SIMPLE_EX2
本身是一个运算符优先级低于|
的表达式,则可能会错误地解释整个表达式。例如,如果SIMPLE_EX2
是a?b:c
,那么SIMPLE_EX1
就变成(0x0040|a)?b:c
,这不是我上面写的。