- 编译器会将注释剔除,但不是简单的剔除,而是用空格代替原来的注释。
- /*…*/这种形式的注释不能嵌套,/*总是与离它最近的*/匹配。
- y = x/*p,表示x 除以p 指向的内存里的值,把结果赋值为y。但要注意代码写法应该为y = x/(空格) *p 或者y = x/(*p)。否则编译器会把/*当作是一段注释的开始,把/*后面的内容都当作注释内容,直到出现*/为止。
- 注释应当准确、易懂,防止有二义性。错误的注释不但无益反而有害。
- 边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要及时删除。
- 注释是对代码的“提示”,而不是文档。程序中的注释应当简单明了,注释太多了会让人眼花缭乱。
- 一目了然的语句不加注释。
- 对于全局数据(全局变量、常量定义等)必须要加注释。
- 注释采用英文,尽量避免在注释中使用缩写,特别是不常用缩写。因为不一定所有的编译器都能显示中文,别人打开你的代码,你的注释也许是一团乱码。还有,你的代码不一定是懂中文的人阅读。
- 注释的位置应与被描述的代码相邻,可以与语句在同一行,也可以在上行,但
不可放在下方。同一结构中不同域的注释要对齐。 - 当代码比较长,特别是有多重嵌套时,应当在一些段落的结束处加注释,便于
阅读。 - 注释的缩进要与代码的缩进一致。
- 注释代码段时应注重“为何做(why)”,而不是“怎么做(how)”。
说明怎么做的注释一般停留在编程语言的层次,而不是为了说明问题。尽力阐述“怎么做”
的注释一般没有告诉我们操作的意图,而指明“怎么做”的注释通常是冗余的。 - 数值的单位一定要注释。
注释应该说明某数值的单位到底是什么意思。比如:关于长度的必须说明单位是毫米,
米,还是千米等;关于时间的必须说明单位是时,分,秒,还是毫秒等。 - 对变量的范围给出注释,尤其是参数。
- 对一系列的数字编号给出注释,尤其在编写底层驱动程序的时候(比如引脚
编号)。 - 对于函数的入口/出口数据、条件语句、分支语句给出注释。
- 避免在一行代码中或表达式中插入注释。
- 复杂的函数中,分支语句、循环语句结束后需要适当的注释,方便区分各分支或循环体。
- 对于不需要被编译的区域要使用条件编译来实现。
- \是一个接续符。C语言中以反斜杠(\)表示断行。编译器会将其剔除后面的字符自动接续到前一行。但是注意:反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格。
- 反斜杠除了可以被用作接续符,还能被用作转义字符的开始标识。
- 双引号引起来的都是字符串常量,单引号引起来的都是字符常量。比如:‘a’和“a”完全不一样,在内存里前者占1 个byte,后者占2个byte。
- 位运算需要用宏定义好后再使用。
- 如果位操作符‘~’和‘<<’应用于基本类型无符号字符型或无符号短整型的操作数,结果会立刻转换成操作数的基本类型。
- 位运算符不能用于基本类型是有符号的操作数上。
- 一元减运算符不能用在基本类型无符号的表达式上,除非在使用前对两个操作数进行比大小判断,并且被减必须大于减数。
- 花括号的作用是什么呢?我们平时写函数,if、while、for、switch 语句等都用到了它,
但有时又省略掉了它。简单来说花括号的作用就是打包。你想想以前用花括号是不是为了
把一些语句或代码打个包包起来,使之形成一个整体,并与外界绝缘。 - C 语言有这样一个规则:每一个符号应该包含尽可能多的字符。也就是说,编译器将程
序分解成符号的方法是,从左到右一个一个字符地读入,如果该字符可能组成一个符号,
那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组
成部分;如果可能,继续读入下一个字符,重复上述判断,直到读入的字符组成的字符串
已不再可能组成一个有意义的符号。这个处理的策略被称为“贪心法”。需要注意到是,除
了字符串与字符常量,符号的中间不能嵌有空白(空格、制表符、换行符等)。按照这个规则可能很轻松的判断a+++b 表达式与a++ +b 一致。 - C 语言的符号众多,由这些符号又组合成了各种各样的运算符。既然是运算符就一定有
其特定的优先级。 - 2/(-2)的值是多少?
- 一些容易出错的优先级问题
《C语言深度解刨》阅读笔记 II
于 2024-02-28 20:41:40 首次发布