Oracle® Solaris Studio 12.4:C 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

6.9 表达式中的分组和求值

K&R C 为编译器提供一个许可证,以便重新整理包含算术上可交换并且关联的相邻运算符(甚至出现圆括号)的表达式。但是,ISO C 没有给编译器同样的自由。

本节通过考虑以下代码片段中的表达式语句,讨论这两个 C 定义之间的差异,并阐明表达式的副作用、分组以及求值之间的差别。

int i, *p, f(void), g(void);
/*...*/
i = *++p + f() + g();