Skip to main content

C1606

初始化器列表不得含有持续的副作用(persistent side effect)

Category: Required

Decidability: Undecidable

Scope: System

依据

C90 约束 要求具有聚合类型的自动对象的 初始化器 只能够含有 常量表达式 。但其后的C语言标准允许聚合的自动 初始化器 含有在运行时求值的表达式,还允许表现为被匿名初始化的对象的复合字面量。对 初始化器 列表中的表达式求值时, 副作用 出现的顺序是不确定的,因此,如果这些 副作用 持续存在 ,会导致无法预测初始化的行为。

登录查看完整文章