判断是否有错时为什么要放error宏定义在==之前?

liufuguansheng 2013-05-11 07:59:53
判断是否有错时为什么要放error宏定义在==之前?好像都是习惯这样放的,是为了什么呢?效率吗?
例如if (SOCKET_ERROR==retval)
为什么不习惯用if (retval==SOCKET_ERROR)??????
...全文
189 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
liufuguansheng 2013-05-13
  • 打赏
  • 举报
回复
感谢。哈哈学习了。。
cc___999 2013-05-12
  • 打赏
  • 举报
回复
楼上说的都对
xiaohuh421 2013-05-12
  • 打赏
  • 举报
回复
为什么不习惯用if (retval==SOCKET_ERROR) 因为这样写容易 少写一个=号, 而编译器可能只报警告而不是错误. 但是, 如果 if(SOCKET_ERROR == retval) 少写一个=号,则编译肯定会报错, 而不是警告了. 所以这样写的目的, 只是为了更好的防止编码出错的可能性.
CyberLogix 2013-05-12
  • 打赏
  • 举报
回复
引用 9 楼 xiaohuh421 的回复:
为什么不习惯用if (retval==SOCKET_ERROR) 因为这样写容易 少写一个=号, 而编译器可能只报警告而不是错误. 但是, 如果 if(SOCKET_ERROR == retval) 少写一个=号,则编译肯定会报错, 而不是警告了. 所以这样写的目的, 只是为了更好的防止编码出错的可能性.
回答正确
buyong 2013-05-11
  • 打赏
  • 举报
回复
也可以,只要保证别写错
zk7736 2013-05-11
  • 打赏
  • 举报
回复
hugett 2013-05-11
  • 打赏
  • 举报
回复
也就是一种习惯问题吧。。就是当你手抽少写了一个=,编译器会发现这个问题。。如果你把顺序换过来,如果少了个等号,你的程序就会留下一个bug。。
taodm 2013-05-11
  • 打赏
  • 举报
回复
可以 google “Yoda condition”
Shana2013 2013-05-11
  • 打赏
  • 举报
回复
就像上头回答的那样,如果习惯写成if(i == 1)的话,马虎少写了个=号不容易发现错误哦
liufuguansheng 2013-05-11
  • 打赏
  • 举报
回复
引用 1 楼 u010059138 的回复:
楼主的意思是这样吧? if(1 == i) 这样的话如果你少写一个=号的话会报错的
有道理哦,哈哈。这个解释不错。。待会加分,看看还有没有其他的解释
liangkdm 2013-05-11
  • 打赏
  • 举报
回复
如果少写一个=号 那么就是1 = i 这个在C中是非法的 因为左值必须是变量,不能是常量
liangkdm 2013-05-11
  • 打赏
  • 举报
回复
楼主的意思是这样吧? if(1 == i) 这样的话如果你少写一个=号的话会报错的

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧