凭直觉猜代码运行结果(自己最近踩的坑)

87 天前
 hhdhhd
int data = 0x0;
if(data & 0x2 == 0)
{
	printf("1\n");
} else
{
	printf("2\n");
}

这段代码太简单了,简单到不需要特别在意。

但是一不小心就踩坑了。

== 的优先级比 & 大,所以运行出来的是“2”。

1011 次点击
所在节点    问与答
2 条回复
gauzung
87 天前
我没有太关心运算符优先级, 但是写到这种代码的时候, 都会留点心加括号, 一是确保结果是我所想的(不管你优先级多大, 都不可能比括号大), 二是增加代码可读性
tool2dx
87 天前
clang 会报警告,该更新编译器了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1075789

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX