aliasing别名访问指不同表达式或不同类型视图指向同一对象并发生访问的情形,常与有效类型和 restrict 规则一起理解。
C 语言标准术语索引
支持按英文术语、中文译法和备注即时过滤。
共 109 条术语。
aliasing别名访问指不同表达式或不同类型视图指向同一对象并发生访问的情形,常与有效类型和 restrict 规则一起理解。
alignment对齐对象类型对存储地址施加的约束。不要与 alignas、alignment specifier 等具体语法成分混译。
alignment specifier对齐说明符声明中的专门语法成分,用于指定对象或类型的对齐要求。
annotation注解标准第 6.1 节用语,用来说明文法、约束、语义、示例等文字的组织方式。
appertains to归属于在声明、属性和初始化规则中,表示某个说明符、属性或初始化器语义上归属于哪个实体或子对象。
argument实参指函数调用中实际传递给形参的表达式或值。
attribute属性用于向实现补充约束、诊断或优化相关语义信息的标准化标注机制。
attribute declaration属性声明一种仅由属性组成的声明形式,不引入通常意义上的对象、函数或类型定义。
attribute specifier sequence属性说明符序列一个或多个属性说明符的组合,标准用它表达属性附着位置。
based on基于在 restrict 及函数类型属性规则中,用来刻画某个左值或指针值是否由另一参数派生。
bit-field位字段结构体成员的一种声明形式,以位宽而不是普通对象大小来分配存储。
block块语句、声明或函数体构成的语法与作用域单元,不只限于花括号本身。
block scope块作用域在块内部引入并生效的作用域类别。
compatible type兼容类型两个类型即使不是同一写法,也可能在标准规定下兼容,并可在特定场合组合为复合类型。
complete type完全类型大小已知、成员或元素信息已足以确定对象布局的类型。
composite literal复合字面量一种用类型名加初始化器直接产生对象值的表达式构造。
composite type复合类型由两个兼容类型在特定规则下合成出的类型,用于声明合并等语境。
constraint约束标准中单列为 Constraint 的要求。违反时实现必须给出诊断。
constraint violation违反约束别名:violates a constraint
不要与未定义行为混同。违反约束首先要求实现发出诊断。
controlling expression控制表达式if、switch、while、do 或 for 中决定控制流走向的表达式。
declaration specifiers声明说明符声明中位于声明符之前的一组说明成分,包含类型说明符、类型限定符、存储类说明符等。
declarator声明符与声明说明符共同决定被声明实体的类型、名称及派生形式。
denotes表示通常用于说明某个记号、表达式或名称在语义上表示什么实体、值或集合。
designates指代在表达式、初始化器和 designator 相关语境中,强调某个语法成分指向某个对象、成员或元素。
designator指示符主要见于初始化器,用来指明当前初始化针对哪个成员或数组元素。
diagnostic诊断实现向用户报告可疑程序构造的消息;标准常要求在违反约束时给出诊断。
diagnostic directive诊断指令预处理指令中的 error 与 warning 形式,用于显式请求产生诊断消息。
effective type有效类型决定对象在访问时适用哪些别名和类型访问规则,是理解对象访问合法性的关键术语。
enumerated type枚举类型由 enum 说明符声明的类型,应与枚举常量、底层类型等概念区分。
enumeration constant枚举常量枚举说明符中声明的具名常量,不要与一般整数常量混译。
evaluation求值包括值计算与副作用。标准在排序、完整表达式与副作用规则中大量使用该术语。
external definition外部定义同时又是对象定义或函数定义的外部声明,不等同于一切文件作用域声明。
file scope文件作用域在翻译单元顶层引入的标识符作用域。
floating constant浮点常量词法层面的常量种类,不要与浮点对象或浮点表达式混译。
full expression完整表达式副作用完成和求值顺序规则的重要边界。
function body函数体函数定义中的复合语句部分,与形参列表一起构成关联块。
function declarator函数声明符声明符的一种,用于引入函数类型、形参列表以及相关属性附着位置。
function definition函数定义同时给出函数声明和函数体的外部定义形式。
function designator函数指示符表示函数的表达式类别,通常会在大多数表达式上下文中转换为函数指针。
function prototype函数原型含有形参类型信息的函数声明形式。
function specifier函数说明符如 inline 一类的说明成分,专门影响函数声明或定义。
generic association泛型关联_Generic 中每个候选分支的“类型名: 表达式”或 default: 表达式 部分。
generic selection泛型选择C11 起引入的 _Generic 构造,根据控制表达式类型选择结果表达式。
idempotent幂等用于函数类型属性时,表示重复执行不会改变结果值或可观察执行状态。
ill-formed形式错误用于描述程序构造本身不符合文法或语义形成条件的情形;与“违反约束”不是同一个术语。
implementation-defined实现定义的表示实现必须作出选择并文档化说明,不限于行为,也可修饰值、属性或格式。
implementation-defined behavior实现定义行为实现必须选择一种行为并加以文档说明。
incomplete type不完整类型尚不能确定对象大小的类型,例如未知长度数组类型或仅声明未完成定义的结构体类型。
independent独立函数类型属性中的术语,表示函数对可观察对象值的依赖满足严格限制。
indeterminate value不确定值对象的值可能既不是稳定的有效值,也可能包含陷阱表示;需结合具体条款理解能否读取。
indeterminately sequenced不确定顺序的两个求值中必有一个先于另一个,但标准不规定究竟是哪一个。
integer constant整数常量词法上的整数常量,不等同于一切值为整数的常量表达式。
integer constant expression整数常量表达式可在数组长度、位字段宽度、case 标签等位置使用的常量表达式子类。
integer conversion rank整数转换等级用于整数提升和通常算术转换的优先比较规则。
integer promotions整数提升较窄整数类型在表达式求值前提升到 int 或 unsigned int 的规则。
lifetime生存期对象存储被保证保留、对象存在并保持最近存值的执行期间。
linkage链接决定不同声明是否指代同一对象或函数的语言机制。
lvalue左值表达式类别之一;在 C 标准中与对象标识、可修改性和赋值约束紧密相关。
macro name宏名由 #define 引入,位于宏名字空间中的标识符。
member designator成员指示符初始化器中用于选中结构体或联合体成员的 designator 形式。
name space名字空间别名:namespace
C 通过分离的标识符类别来避免不同语境中的命名冲突。
null directive空指令仅由 # 和换行构成的预处理指令,不产生任何效果。
null statement空语句仅由一个分号构成的语句,不执行任何操作。
object对象执行环境中的数据存储区域。全文统一用“对象”,不写成“变量”。
object definition对象定义为对象保留存储并完成定义的声明形式。
object file目标文件翻译环境产物之一,通常在链接阶段与其他目标文件和库组合。
object representation对象表示对象在存储中实际占用的比特模式,可能包含填充位。
ordinary identifier普通标识符处于普通标识符命名空间中的标识符,与标记名、成员名、标签名等并列区分。
parameter形参函数声明或定义中引入的参数名及其类型信息。
parameter type list形参类型列表函数声明符中的形参类型序列,可包含省略号表示可变实参。
placemarker preprocessing token占位预处理记号只在宏替换的翻译阶段内部临时存在的特殊预处理记号,用于处理空实参与 ##。
pp-number预处理数字预处理阶段的数字记号类别,晚于该阶段才可能进一步解析成具体常量。
pp-token预处理记号别名:preprocessing token
preprocessing token 的常用缩写,标准在预处理语法和宏替换规则中频繁使用。
preprocessing token预处理记号翻译早期阶段使用的记号类别,晚于该阶段才会解析成关键字、常量等词法元素。
qualifier限定符通常指 const、volatile、restrict、_Atomic 等类型限定成分;语境不同也可能专指 cv 限定。
recommended practice推荐实践标准建议实现或程序采取的做法,不属于强制约束或语义要求。
representation表示在值表示、对象表示、编码等上下文中,都强调抽象值如何映射到比特或代码单元。
reproducible可复现函数类型属性术语,表示函数既 effectless 又 idempotent。
rescan重新扫描宏替换后再次对结果记号序列执行宏名识别与进一步替换的步骤。
result expression结果表达式泛型选择中最终被选中并参与后续语义的表达式。
scalar type标量类型算术类型和指针类型等可作为单个标量值处理的类型类别。
scope作用域决定标识符、类型名或复合字面量可见范围的规则集合。
sequence point序列点旧式术语,用来概括一类保证前后副作用排序完成的边界。C23 仍在部分说明中使用。
sequenced before先序于同一线程内两个求值之间的非对称、可传递排序关系。
side effect副作用除生成值之外,对对象、文件、浮点环境或原子同步状态造成的可观察变更。
standard attribute标准属性由标准直接规定名称和含义的属性,而非厂商扩展属性。
storage duration存储期对象从创建到销毁所覆盖的执行时段。
storage-class specifier存储类说明符决定对象存储期、链接、类型推导或 constexpr 等性质的说明成分。
tentative definition暂定定义文件作用域对象定义的一种特殊形式;若翻译单元结束前没有真正定义,会按规则补成定义。
token记号词法分析后的正式记号类别,晚于预处理记号阶段。
translation environment翻译环境从源文件到翻译单元、目标文件等产物的实现环境。
translation phase翻译阶段标准规定的源程序处理阶段序列,用于说明注释、宏、字符串连接等何时发生。
translation unit翻译单元预处理完成后的程序文本单位,由一系列外部声明组成。
trap representation陷阱表示某些比特模式并不表示可安全读取的值,对它们进行特定读取可能产生未定义行为。
type domain类型域区分实数、复数、虚数等算术类型所属的域,用于算术转换描述。
type inference类型推导在声明中由初始化器等信息推得类型的机制,C23 中与 auto 结合引入。
type name类型名由说明符-限定符列表及可选抽象声明符组成的语法形式。
type qualifier类型限定符如 const、volatile、restrict、_Atomic 一类修饰类型语义的成分。
type specifier类型说明符构成类型名或声明说明符列表的核心成分,如 int、struct、enum、typeof 等。
typeof operatortypeof 运算符由 typeof 与 typeof_unqual 两个记号共同代表的一类运算符。
undefined behavior未定义行为标准不对结果作任何要求。不要与违反约束、未指定行为、实现定义行为混译。
unsequenced未定序的两个求值之间既非先序于、也非后序于的关系;在函数类型属性中也还是标准属性名。
unspecified behavior未指定行为标准允许多种结果,但不要求实现事先文档说明具体采用哪一种。
usual arithmetic conversions通常算术转换二元算术运算中用来统一操作数类型的一组转换规则。
value category值类别此处是解释性归纳用语,用来帮助读者区分左值、函数设计ator结果等表达式语义类别;标准原文并不总直接使用该总称。
value computation值计算求值的一部分,指产生表达式结果值或确定对象标识的过程。
value representation值表示对象表示中真正参与编码抽象值的那些位,不包含纯填充位。
variably modified type变长修改类型别名:VM type
由变长数组等引入、其大小表达式需在运行时求值的类型类别。
well-formed形式正确与 ill-formed 对应,表示程序构造在文法和形成条件上是成立的。