C陷阱之一

来源:互联网 发布:淘宝店铺卖什么最好卖 编辑:程序博客网 时间:2024/05/16 09:20

运算符与符号之间的二义性:

1.语句之陷阱一: y = x/*p;

本意是x 除以*p后的值,但是经过词法翻译之后变为了y = x,后面的变成了/*p,即为一条注释。

如果有这类运算的话,应该注意可以讲/和*中间空格。详细的情况参考词法分析的“贪心法”。

2.语句之陷阱二:a =-1;

本意是a等于-1,但是经过词法翻译后相当于a -= 1;即为a = a - 1;

这类运算改为a = -1;注意词法单元他是以一个连续的字符串为一个词法单元,遇到空字符时词法单元分割。

3.语句之陷进三:常量编译

一些版本的将数字前面加0编译时将后面的数字按照八进制进行编译;

如0195 =

4.C语言中的单引号和双引号含义不一样,但是在某些情况下,如果把这两者一起用,编译器不会检出处错误,但是在运行时产生难以预料的结果。

0 0
原创粉丝点击