“C语言:术语、定义和符号”的版本间差异

来自Peter_Matthew的Wiki
无编辑摘要
无编辑摘要
第39行: 第39行:
国际标准中提供了两种或两种以上的可能性,但对在任何情况下选择哪种可能性不做进一步要求的行为
国际标准中提供了两种或两种以上的可能性,但对在任何情况下选择哪种可能性不做进一步要求的行为
  例:未指定行为的一个例子是,函数参数的求值顺序。
  例:未指定行为的一个例子是,函数参数的求值顺序。
=== '''位''' ===
执行环境中的数据存储单元,其大小足以容纳可能具有两个值之一的对象。
注:不需要表达对象的每个单独位的地址。
=== '''字节''' ===
可寻址的数据存储单元,其大小足以容纳执行环境中基本字符集的任何成员。
注1:可以唯一地表示对象的每个单独字节的地址。
注2:一个字节由连续的比特序列组成,比特的数量是由实现定义的。最低有效位被称为''低阶''位,最高有效位被称为''高阶''位。

2023年9月29日 (五) 08:23的版本

以下定义适用于有关国际标准的部分。其他术语的定义会以斜体类型表示或出现在语法规则的左侧。对于已在国际标准中明确定义的术语,不得推定为暗指其他地方定义的类似术语。对于在国际标准中未定义的术语,应根据ISO/IEC2382−1进行解释。对于在国际标准中未定义的数学符号,应根据ISO31−11进行解释。

访问

〈执行时的操作〉读取或修改一个对象的值

注1:如果只表示这两种操作中的一种,则使用“读取”或“修改”。
注2:“修改”包括存储的新值与先前值相同的情况。
注3:未求值的表达式不会访问对象。

对齐

要求特定类型的对象位于存储边界上,其地址是字节地址的特定倍数

参数

实际参数

实际参量(已废弃)

函数调用表达式中括号内逗号分隔列表中的表达式,或类函数宏调用中括号内逗号分隔列表中的预处理标记序列

行为

外在表现或操作

由实现定义的行为

每个实现都会记录如何作出选择的未指定行为

例:由实现定义的行为的一个例子是,有符号整数右移时高阶位比特的传播。

本地化行为

取决于每个实现所记录的当地民族、文化和语言惯例的行为

例:本地化行为的一个例子是,islower函数是否会为26个小写拉丁字母以外的字符返回true。

未定义行为

在使用非可移植的或错误的程序结构或错误数据时出现的行为,国际标准对此不做要求

注:可能出现的未定义行为包括:完全忽略的情况造成的不可预知的结果;在翻译或程序执行过程中,以记录的方式表现出环境特征(无论是否发出诊断信息);终止翻译或执行(发出诊断信息)。
例:未定义行为的一个例子是,整数溢出时的行为。

未指定行为

国际标准中提供了两种或两种以上的可能性,但对在任何情况下选择哪种可能性不做进一步要求的行为

例:未指定行为的一个例子是,函数参数的求值顺序。

执行环境中的数据存储单元,其大小足以容纳可能具有两个值之一的对象。

注:不需要表达对象的每个单独位的地址。

字节

可寻址的数据存储单元,其大小足以容纳执行环境中基本字符集的任何成员。

注1:可以唯一地表示对象的每个单独字节的地址。
注2:一个字节由连续的比特序列组成,比特的数量是由实现定义的。最低有效位被称为低阶位,最高有效位被称为高阶位。