1.7 关于C语言运算符的优先级 |
|
设计8051单片机C语言程序时,涉及大量表达式的编写,对于多种类型运算符组合的表达式,要注意它们的优先级,表1-5给出了ANSI C的运算符优先级,阅读全书源程序及进行编程实践时可参考。例如,为判断从P1端口读取的低3位是否全1,可用如下语句:
如果将上述语句误写成:
在编译时不会提示任何错误,因为该语句的语法是正确的,但显然未实现所要求的目标。因为由运算符优先级表格可知,位运算符“&”的优先级低于关系运行符“==”的优先级,故需要将“P1 & 0x07”单独添加“( )”提升其优先级。
表1-5 ANSI C语言运算符优先级
续表