C陷阱与缺陷,小记
Chapter 1
1、符号间的空白(空格符,制表符,换行符)将被忽略。
例:
if(x>big) big=x;还可以写成:
if ( x > big ) big = x ;
2、词汇分析中的“贪心法”
编译器将程序分解成符号的方法是,从左到右一个字符一个字符的读入,如果字符可能组成一个字符,那么再读入下一个字符,以此类推。但是符号之间不能前有空白
例1:
a---b和 a -- - b含义相同,但是和a - --b含义不同。
例2:
这个例子表明y=x 之后的都是注释,可以更改如下:y=x/*p /*p指向除数*/;
y=x/ *p /*p指向除数*/; 这样仅在之间加了一个空格,破坏了贪心法的读取法则、或者更清楚的表达方式,y=x/(*p)