“=”号惹得祸

这一点即使强调一万遍也不为过:在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: }

编译上面的程序会报错: 不能给常量赋值!因此,极力推荐这种常量在前的写法,这是防止犯下愚蠢错误的细节!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值