c - 是否所有的C编译器都严格遵循运算符优先顺序

标签 c compiler-construction programming-languages operators

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

如果我按照C标准写程序可以吗operator precedence

最佳答案

是的,会好的。

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

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

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

关于c - 是否所有的C编译器都严格遵循运算符优先顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12005369/

相关文章:

c - 像 v8 这样的 JIT 编译器如何构建其内存(即堆栈、堆、代码和数据)?

c++ - 即使有 new 和 delete,Functor 构造和开销也为零?

programming-languages - 编程语言复杂度

vba - 在用户桌面上创建当前文件夹的快捷方式

c++ - 查找符号链接(symbolic link)指向的位置 (Windows)

java - 在另一种方法中使用 getter 不起作用?

c - 为什么这个通用表达式会出错?

c++ - 什么样的多态性在 C++ 中被认为更惯用?

c - 将数组的每个元素乘以C中的数字

结构可以为自己的初始成员和唯一成员起别名吗?