所有的C编译器都严格遵循运算符优先顺序吗

问题描述 投票:0回答:2

我正在编写c程序,它将在世界上大多数C编译器中编译(windows,linux,solaris,mac,aix,hpux,vxworks(arm,ppc,mips...),windriver linux等编译器.)

如果我按照C标准来写程序可以吗运算符优先级

c operators
2个回答
1
投票

是的,会好的。

但是,如有疑问,请使用括号!

int a = 2 * 3 / 4;   /* 0 or 1 ? */
int b = (2 * 3) / 4; /* definitely 1 */
int c = 2 * (3 / 4); /* definitely 0 */

有多余的括号比错误的结果要好得多。


0
投票

是的。

一般来说,语言几乎不会不指定解析,因为根据规范进行解析对于语言设计者来说相当容易,并且解析不会影响结果程序的性能。

© www.soinside.com 2019 - 2024. All rights reserved.