主要观点:作者作为 80 年代后期学习 C 的人,不断惊讶于 C 语言的新内容,介绍了在 C 语言中比较变量和赋值的常见错误,以及一种将比较反转以避免忘记等号的写法,还提到了不同地区对于数字和货币符号表示的差异等。
关键信息:
- 80 年代的 C 编译器为 K&R 时代,函数定义形式不同。
- 在 C 语言中,双等号“==”用于比较,单等号“=”用于赋值,易犯忘记等号的错误。
- Aidan Hall 指出赋值表达式会返回赋值的值,如“if (a = 0)”不是比较而是赋值。
- 可将比较反转,如“if (42 == a)”,能避免忘记等号,且这种写法虽看起来奇怪但有其合理性。
- 作者开始在新代码中使用这种反转比较的写法,如“if (NULL!= ptr)”等。
重要细节: - 给出了具体的代码示例,如错误的“if (a = 42)”和正确的“if (42 == a)”等。
- 提到曾在不同工作中发现此类错误,包括自己写的代码。
- 回忆在印度团队代码中看到反转比较的写法及对此的感受。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。