ISO/IEC 9899:2011 附录C——顺序点

附录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);一条选择语句(ifswitch)的控制表达式(6.8.4);一条whiledo语句的控制表达式(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)。

时间: 2024-10-08 15:06:34

ISO/IEC 9899:2011 附录C——顺序点的相关文章

ISO/IEC 9899:2011 前言

前言 1.ISO(国际标准组织)与IEC(国际电工技术委员会)为全世界标准形成了专门的系统.作为ISO或IEC成员的国家机构,通过由各自组织所建立的技术委员会来加入国际标准的开发,以处理特定领域的技术活动.ISO与IEC技术委员会在共同关注的领域相互协作.其它与ISO和IEC相互联络的国际组织.政府和非政府也参加此工作. 3.在信息技术领域,ISO与IEC已经建立了联合技术委员会——ISO/IEC JTC 1.由联合技术委员会所采纳的国际标准草案传递给国家机构用于投票.作为一个国际标准的发布要求

ISO/IEC 9899:2011 条款6.4.3——通用字符名

6.4.3 通用字符名 语法 1.通用字符名: universal_character-name: \u hex-quad(四位十六进制数) \U hex-quad hex-quad hex-quad: hexadecimal-digit    hexadecimal-digit    hexadecimal-digit    hexadecimal-digit 约束 2.一个通用字符名不应该指定一个字符,其短标识符比00A0要小,除了0024($),0040(@),0060(`)之外,也不应该

ISO/IEC 9899:2011 条款5——5.2.1 字符集

5.2.1 字符集 1.两个字符集和它们相关联的依次顺序应该被定义:写在源文件中的集合(源字符集),以及在执行环境中被解释的集合(执行字符集).每个集合此外被划分为一个基本字符集,其内容由本子条款给出,以及一组零个或多个区域特定的成员(这些不是基本字符集的成员),称为扩展字符.这些成员结合起来也被称为扩展字符集.执行字符集的成员的值是由实现定义的.

ISO/IEC 9899:2011 摘要

本国际标准指定了C编程语言的形式并建立了对用它所表达的程序的解释.其目的在于促进在多种计算机系统上的C语言程序的可移植性.可靠性.可维护性以及高效的执行. 为了详细地说明C语言本身以及C语言执行库,包含了相关条款.附录同时概括了这两个方面,并且枚举了影响C程序可移植性的因素. 尽管本国际标准目的在于指引有相关领域知识的C语言程序员以及对C语言翻译系统的实现者,不过本文档自身并不服务于一本辅导教科书.

ISO/IEC 9899:2011 条款6.5.16——赋值操作符

6.5.16 赋值操作符 语法 1.assignment-expression: conditional-expression unary-expression    assignment-operator     assignment-expression assignment-operator: 以下之一         =    *=    /=    %=    +=    -=    <<=    >>=    &=    ^=    |= 约束 2.一个赋值操作

ISO/IEC 9899:2011 条款6.4.1——关键字

6.4.1 关键字 语法 1.以下为关键字: auto    break    case    char    const    continue    default    do    double    else    enum    extern    float    for    goto if    inline    int    long    register    restrict    return    short    signed    sizeof    stati

ISO/IEC 9899:2011 条款6——语言

6 语言 6.1 标记法 1.在本条款中所使用的语法标记法.语义类别(非终结符)用斜体字指示,而字面量单词以及字符集成员(终结符)用粗体字指示.跟在一个非终结符后面的冒号(:)引出其定义.在单独的行中列出可替换的定义,除了当用单词“之一”开头时.一个可选的符号用下标“opt”来指示,这样 { expressionopt } 指示一个在大括号中包裹的可选的表达式. 2.当在文本中引用了语义类别时,它们不用斜体标明并且单词用空格而不是连接号(-)来分隔. 3.在附录A中给出了语言语法的概述. 6.2

ISO/IEC 9899:2011 条款6.5——表达式

6.5 表达式 1.一个表达式是操作符与操作数的一个序列,这些操作符与操作数指定了一个值的计算,或指派一个对象或一个函数,或是生成副作用,或执行上述操作的组合.对一个操作符的操作数的值计算顺序排在对该操作符的结果的值计算之前.[译者注:比如 int a = (100 + 5) * (20 - 6); 对于上述表达式,就对于当中的 * 操作符而言,先计算乘法操作符左右两边的操作数的计算,最后再计算乘法操作结果. ] 2.如果在一个标量对象上的副作用相对于同一标量对象上的另一个不同副作用或是使用同一

ISO/IEC 9899:2011 条款6.7.1——存储类说明符

6.7.1 存储类说明符 语法 1.storage-class-specifier: typedef extern static _Thread_local auto register 约束 2.在一个声明中,在声明说明符中最多只能给出一个存储类说明符,除了_Thread_local可以与static或extern一起出现.[注:见“未来语言方向”(6.11.5)] 3.在含有语句块作用域的一个对象的声明中,如果声明说明符包含了_Thread_local,那么它们应该也包含static或是ext