- 编码的一个习惯
在两个token(符号)之间务必要用空格来分开。
比如下面这句代码:
①a=-1;
写成这样就比较好:
②a = -1;
这样写有助于使得代码的符号的划分更清晰,更容易被识别。同时也会避免编译器在进行词法分析的时候错误地分析符号。
例如,上面例子在一些古老的C语言编译器中会出问题。
这些编译器中-=和=-被视作意义相同的运算符,因此①会被这些编译器识别为下面的语句:
③a = a - 1;
- =、==、:=
老生常谈的一个问题。
首先,在C语言中,一定要区分=和==这两个符号。
其次,在linux中:=和=都在在作为赋值运算符被使用。
在makefile中:=被用来进行非递归的赋值,而=则是递归地进行赋值。
- 对于多个字符组成的token(符号)要注意加括号来消除二义性
看下面这行代码。
④a = b / *c;
这行代码如果没有空格分隔开各个token的话,则是下面这幅模样:
⑤a=b/*c;
代码中的/*可以被解释为是注释的开始,也可以是按照④那样被解释为/和*两个token。
这种情况下最好添加括号以消除代码的二义性,较好的代码如下:
⑥a = b / (*c);
- 由双引号和单引号引起来的字符串
单引号引起来的字符,注意要是一个而不是多个字符,若用单引号引起一个字符串则是一个不科学的行为,现代编译器也会提醒这种错误。
单引号引起来的部分被编译器视作是字符,而双引号引起来的部分的值则被视作该字符串的地址。
注意,双引号引起来的部分不是被作为“指针变量”来使用的,要区分指针变量和地址。