一行逻辑错误,但语法没有错误的代码

13 篇文章 1 订阅
5 篇文章 0 订阅

  用C++调用windows API进行非阻塞TCP通信,其中一行代码被我写成了如下:

这段代码编译没有任何错误与警告,但结果并不是我想要的。调试了半天也没有结果。最后实在没有办法,我把代码拷到CodeBlocks中,用GCC编译,结果一样。再次重新检查代码的时候,才发现,绑定本地ip与端口的这行代码很诡异。我尽然把bind(...)写成了(...)。==操作符右边是一个逗号表达式,返回sizeof(addr),刚好是一个整形,所以语法没有任何错误。正确的代码应该这样:

我想我在写代码的时候,应该不至于把bind(...)写成(...),可能是在编码过程中,不小心把"bind"给ctrl + x了。但这样的错误实在是难以发现。

 

  如果用C#写类似的代码,我相信自己不会犯这样的错误。因为在.NET平台下,所有的类,枚举在编辑器上显示的颜色与一般的方法,属性是不一样的;同时因为.NET的对象是自我描述的,强大的智能提示功能也减小了犯类似错误的概率。确实,一个好的工具,能提高编码的效率,减少犯错误的机会。想想,如果.NET没有Visual Studio这样的配套工具,可能.NET也不会有今天这样的流行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值