![]() |
1
31
有些人使用方法2的原因是,如果您错误地键入a=而不是==,则会得到一个编译器错误。 但是,您会有人(像我一样)仍然使用方法1,因为他们发现它更易读,如果有错误,将在测试期间检测到(或者在某些情况下,对代码进行静态分析)。 |
![]() |
2
10
唯一的区别是(const_value==variable)使常见的拼写错误(const_value=variable)无法编译。 相比之下,如果(variable=const_value),编译器会认为您打算将const_value分配给“variable”。 =/==混淆是C中一个非常常见的bug源,这就是为什么人们试图用编码约定来解决这个问题。 当然,如果你比较两个变量,这不会节省你的钱。 |
![]() |
3
3
正如其他人提到的,const_value==variable避免了=typo。 我仍然会做“variable==const_value”,因为我认为它更可读,当我看到如下内容时:
我的血压升高了。 |
![]() |
4
2
第一种变体
更好,因为它更可读。它遵循一个惯例(也用于数学),即变化最大的值首先出现。 第二种变体
被一些人用来防止平等检查与分配的混淆
有更好的方法来实现这一点,例如启用并注意编译器警告。 |
![]() |
5
1
其他人已经指出了原因。=/==混乱。我更喜欢第一个版本,因为它更接近于思维过程。有些编译器通过在遇到类似的情况时发出警告来缓解=和==的混淆。
在这种情况下,如果你真的想做任务,你就不得不写
我会把它写成
以避免混淆。 这就是说,在代码1的情况下,我们有一个=/==混淆,而用另一种方式编写它将不会有帮助,因为它是vars之间的比较。 |
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 4 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 4 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 4 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 4 月前 |