附录C——顺序点
1、以下是在5.1.2.3中所描述的顺序点(sequence point):
——在一个函数调用中的函数指示符(function designator)和实际参数的计算,与实际调用之间的顺序点(6.5.2.2)。
——在以下操作符的第一个和第二个计算之间的顺序点:逻辑与&&(6.5.13);逻辑或||(6.5.14);逗号,(6.5.17)。
——在条件操作符?:的第一操作数的计算和第二个与第三个操作数被计算之间的顺序点(6.5.15)。
——一个完整声明符的末尾:声明符(6.7.6);
——在一个完整表达式的计算与下一个要被计算的完整表达式之间的顺序点。以下为完整表达式:不作为一个复合字面量的一部分的一个初始化器(6.7.9);在一个表达式语句中的表达式(6.8.3);一条选择语句(if或switch)的控制表达式(6.8.4);一条while或do语句的控制表达式(6.8.5);一条for语句的每个(可选的)表达式(6.8.5.3);一条return语句中的可选表达式(6.8.6.4)。
——在一个库函数返回之前那一点(7.1.4)。
——与每个格式化的输入/输出函数转换说明符相关联的动作之后(7.21.6,7.29.2)。
——在对一个比较函数的调用立即之前和立即之后,以及在对一个比较函数的任一调用与作为实参传递给那个调用的对象的任一搬移之间的顺序点(7.22.5)。