【发布时间】:2017-05-03 17:32:54
【问题描述】:
下面给出的代码是为了满足条件 (x == x+2) 在 C 中返回 true。
#include<stdio.h>
#define x 2|0
int main()
{
printf("%d",x==x+2);
return 0;
}
在上面的代码中为什么printf() 打印2 (如果我写x+3 我得到3 等等)。
谁能解释给定的宏是如何工作的。
C中|运算符有什么用,宏有什么作用
#define x 2|0
是什么意思?我在其他问题中阅读了有关宏的信息,但没有问题解释了类似的示例。
【问题讨论】:
-
预处理后的代码是什么意思?
-
展开宏。查看运算符优先级表。理解。开悟吧。
-
我知道你在学习。学习这些东西很好……但以后不要真正使用它。
-
@VoidLimbo 晦涩难懂的代码只适用于 c00L h4xx0r 比赛。
-
#define x 1.0e100也可能满足x==x+2
标签: c macros bitwise-operators bitwise-or