博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原来==的优先级比&高 (转自地址为http://blog.163.com/cynicly@126/blog/static/1206105820103893715302/的网易博客)...
阅读量:5153 次
发布时间:2019-06-13

本文共 961 字,大约阅读时间需要 3 分钟。

昨天晚上开始,就很郁闷一个事情,if的一个判断条件怎么也进不去,后来给后面加了个括号,就可以了,上网一查。。。。。原来是这样。转过来留着看,感谢原作者 。

以下是原文:

最近调了两天的程序的收获,就是发现==的优先级比&高,在之前的记忆中一直有个错误的概念,==的优先级是最低的,结果为了这个错误浪费了我两天的时间.

    最近有个程序,用到了简单的if语句,if((1<<F_ML)==flag&(1<<F_ML)),因为一直以为==的优先级是最低的,所以后面的部分没有(),结果程序怎么调结果都不对,中间还以为单片机出问题了,换了两次,而且是QFN封装的,程序从头看到尾不下三遍,还好程序不是太长,都没什么用,就准备放弃的时候,发现编译器下面出现的警告信息,(****.c:121: warning: suggest parentheses around comparison in operand of &),开始一直没留意,程序改的已经没得改了,就想试试看,按编译器的要求增加(),结果就OK了,我就纳闷了,上网一查,吓一跳,原来==的优先级比&高,晕死,想想以前一直按==的优先级在写程序,都没出问题,以前运气还真不是一般的好啊.

 

附C语言运算符优先级口诀

   括号成员第一; //括号运算符[]() 成员运算符. ->

  全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算*&
  乘除余三,加减四; //这个"余"是指取余运算即%
  移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等
  等于(与)不等排第七; //即== !=
  位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|) 
  "三分天下"八九十; 
  逻辑或跟与; //逻辑运算符:|| 和 &&
  十二和十一; //注意顺序:优先级(||) 底于 优先级(&&) 
  条件高于赋值, //三目运算符优先级排到 13 位只比赋值运算符和","高//需要注意的是赋值运算符很多!
  逗号运算级最低! //逗号运算符优先级最低

转载于:https://www.cnblogs.com/huyanshan/archive/2013/04/15/3021449.html

你可能感兴趣的文章
[Java] Java record
查看>>
jQuery - 控制元素显示、隐藏、切换、滑动的方法
查看>>
postgresql学习文档
查看>>
Struts2返回JSON数据的具体应用范例
查看>>
js深度克隆对象、数组
查看>>
socket阻塞与非阻塞,同步与异步
查看>>
团队工作第二天
查看>>
linux一些基本操作-防火墙操作
查看>>
System类
查看>>
tableView
查看>>
Happy Great BG-卡精度
查看>>
Xamarin Visual Studio不识别JDK路径
查看>>
菜鸟“抄程序”之道
查看>>
Ubuntu下关闭防火墙
查看>>
TCP/IP 邮件的原理
查看>>
w3m常用快捷键
查看>>
【Unity 3D】学习笔记四十一:关节
查看>>
原型设计工具
查看>>
windows下的C++ socket服务器(4)
查看>>
css3 2d转换3d转换以及动画的知识点汇总
查看>>