您的位置:首页 > 其它

“=”号惹得祸

2010-06-04 12:36 218 查看
这一点即使强调一万遍也不为过:在C++中,千万不要把“==”写成”=”;否则你的程序会死的很难看!
但是,现实中即使是那些天才程序员也会犯这种极其愚蠢的错误,但愿大家不要在Check-In代码的时候写上”type error”. 我看不惯这种注释。
上周,由于有大客户要一个DEMO,加班加点实现一个BlueRay Disk的刻录外加transcoding的程序,总是在刻录最后的时候程序crash,提示访问地址非法;但是,怎么看怎么也找不出问题来,总感觉那个地址好像被其他模块或者线程修改了,也就是可能有其它部分内存操作越界了(注意,这是在嵌入式操作系统上);这下麻烦大了,调试了3天也没找出问题;后来,一点一点的看code,终于发现问题:
1: 


2: if (audio.frequency = 48000)


3: {


4:     ...


5: }


看到没,就这么小小的一个字符;把它改正了之后,程序跑的可欢实了!因为是嵌入式系统,所以,一些不规范的写法,或者愚蠢的错误,会导致各种莫名其妙的系统异常,从惨痛教训中,我们才明白了这一点。有时候,程序的写法上稍稍做一下改动就会避免这个问题:

1: if (48000 = audio.frequency)


2: {


3:     ...


4: }


编译上面的程序会报错: 不能给常量赋值!因此,极力推荐这种常量在前的写法,这是防止犯下愚蠢错误的细节!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: