《C陷阱与缺陷》读书笔记(第一章)
从同学那里借到了这本书,以前在电子书上看了一些,现在想系统地看看。顺便也在这刚开的博客里做一下笔记吧。:)
1.1 =不同于==
有时候可能需要在判断语句中进行赋值,再判断结果是否为零。如果确实想这么写:if(x = y),也应该显式地比较,以免引起误解:if((x = y) != 0)。
1.3 词法分析中得“贪心法”
这一节作者提到了一个例子。y = x/*p,代码本意是用 x 去除 p 所指向的数,但可能会被编译器理解为一段注释的开始。所以在双目运算符左右尽量加空格还是比较明智得选择。
1.4 整形常量
如果在八进制的数值表示中出现8,9,gcc 会直接报错。
1.5 字符与字符串
gcc 中也支持多字节字符常量,比如 int i = ‘abcd’ 后,i 的值为:0×61626364。但在编译时会出现警告。另外,如果变量无法完整地装入多字节字符常量时,比如 char c = ‘abcd’,此时 c 的值为多字节字符的最后一个字符的值,即 ‘d’,编译器对此会外加一个溢出警告。

Test.
Test said this on June 27th, 2008 at 4:08 pm