【发布时间】:2013-05-18 00:32:47
【问题描述】:
虽然 answering a question 使用了一些我认为不是标准 C 的函数(sscanf_s 和 sprintf_s),但 Daniel Fischer 让我注意到这些函数在附件 K 中定义。
我一般理解规范意味着它有助于定义标准。但是,传统上,C 标准的附件仅被视为提供信息。附录 K 在 C11 标准中被标记为规范性的。它定义了“安全”功能。
这是否意味着不提供这些函数的编译器不符合 C11 标准?
我只有 C11 标准草案,但它声明附件 K 是规范性的,但标准的库部分没有提及附件 K 中讨论的功能。 定义中的注释runtime-constraint 似乎暗示 Annex K 定义了一个扩展。
规范性附件是否仅定义可选扩展?
【问题讨论】:
-
附件 D、F、G、K、L 均为 ISO/IEC 9899:2011 中的规范性内容。其他(A、B、C、E、H、I、J)信息丰富。
标签: c language-lawyer c11 tr24731