|
|
1
4
它不起作用,因为比较运算符(==)的优先级高于按位或()。 所以当你这样做的时候
结果是,
最终执行有点像,
尝试将宏定义为
|
|
2
2
建议 总是 用括号括起宏
尤其是当涉及到
正如该语言的作者丹尼斯·里奇(Denis Ritchie)在第一个K&R中所说,
将被解析为
短路,合乎逻辑
|
|
3
1
这是C语言的一个已知缺陷
通过正确编写宏来解决此问题:
任何一本像样的C编程书都会解决这样的问题,并展示如何用括号正确地编写宏。 |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |