“C语言:术语、定义和符号”的版本间差异
来自Peter_Matthew的Wiki
Peter Matthew(讨论 | 贡献) 小无编辑摘要 |
Peter Matthew(讨论 | 贡献) 无编辑摘要 |
||
第1行: | 第1行: | ||
以下定义适用于有关国际标准的部分。其他术语的定义会以''斜体''类型表示或出现在语法规则的左侧。对于已在国际标准中明确定义的术语,不得推定为暗指其他地方定义的类似术语。对于在国际标准中未定义的术语,应根据ISO/IEC2382−1进行解释。对于在国际标准中未定义的数学符号,应根据ISO31−11进行解释。 | |||
=== '''访问''' === | === '''访问''' === | ||
〈执行时的操作〉读取或修改一个对象的值 | |||
注1:如果只表示这两种操作中的一种,则使用“读取”或“修改”。 | |||
注2:“修改”包括存储的新值与先前值相同的情况。 | |||
注3:未求值的表达式不会访问对象。 | |||
=== '''对齐''' === | === '''对齐''' === | ||
要求特定类型的对象位于存储边界上,其地址是字节地址的特定倍数 | |||
=== '''参数''' === | |||
实际参数 | |||
实际参量(已废弃) | |||
函数调用表达式中括号内逗号分隔列表中的表达式,或类函数宏调用中括号内逗号分隔列表中的预处理标记序列 | |||
=== '''行为''' === | |||
外在表现或操作 | |||
==== '''由实现定义的行为''' ==== | |||
每个实现都会记录如何作出选择的未指定行为 | |||
例:由实现定义的行为的一个例子是,有符号整数右移时高阶位比特的传播。 | |||
==== '''本地化行为''' ==== | |||
取决于每个实现所记录的当地民族、文化和语言惯例的行为 | |||
例:本地化行为的一个例子是,'''islower'''函数是否会为26个小写拉丁字母以外的字符返回true。 | |||
==== '''未定义行为''' ==== | |||
在使用非可移植的或错误的程序结构或错误数据时出现的行为,国际标准对此不做要求 | |||
注:可能出现的未定义行为包括:完全忽略的情况造成的不可预知的结果;在翻译或程序执行过程中,以记录的方式表现出环境特征(无论是否发出诊断信息);终止翻译或执行(发出诊断信息)。 | |||
例:未定义行为的一个例子是,整数溢出时的行为。 | |||
==== '''未指定行为''' ==== | |||
国际标准中提供了两种或两种以上的可能性,但对在任何情况下选择哪种可能性不做进一步要求的行为 | |||
例:未指定行为的一个例子是,函数参数的求值顺序。 |
2023年9月28日 (四) 21:25的版本
以下定义适用于有关国际标准的部分。其他术语的定义会以斜体类型表示或出现在语法规则的左侧。对于已在国际标准中明确定义的术语,不得推定为暗指其他地方定义的类似术语。对于在国际标准中未定义的术语,应根据ISO/IEC2382−1进行解释。对于在国际标准中未定义的数学符号,应根据ISO31−11进行解释。
访问
〈执行时的操作〉读取或修改一个对象的值
注1:如果只表示这两种操作中的一种,则使用“读取”或“修改”。
注2:“修改”包括存储的新值与先前值相同的情况。
注3:未求值的表达式不会访问对象。
对齐
要求特定类型的对象位于存储边界上,其地址是字节地址的特定倍数
参数
实际参数
实际参量(已废弃)
函数调用表达式中括号内逗号分隔列表中的表达式,或类函数宏调用中括号内逗号分隔列表中的预处理标记序列
行为
外在表现或操作
由实现定义的行为
每个实现都会记录如何作出选择的未指定行为
例:由实现定义的行为的一个例子是,有符号整数右移时高阶位比特的传播。
本地化行为
取决于每个实现所记录的当地民族、文化和语言惯例的行为
例:本地化行为的一个例子是,islower函数是否会为26个小写拉丁字母以外的字符返回true。
未定义行为
在使用非可移植的或错误的程序结构或错误数据时出现的行为,国际标准对此不做要求
注:可能出现的未定义行为包括:完全忽略的情况造成的不可预知的结果;在翻译或程序执行过程中,以记录的方式表现出环境特征(无论是否发出诊断信息);终止翻译或执行(发出诊断信息)。
例:未定义行为的一个例子是,整数溢出时的行为。
未指定行为
国际标准中提供了两种或两种以上的可能性,但对在任何情况下选择哪种可能性不做进一步要求的行为
例:未指定行为的一个例子是,函数参数的求值顺序。