C99标准翻译 4. 一致性

目录:https://blog.csdn.net/qq_37422196/article/details/135239820


在此国际标准中,“应该”被解释为对实现或程序的要求;相反,“不应该”被解释为禁止。

如果“应该”或是“不应该”的要求被破坏,则行为未定义。在本国际标准中,未定义行为还可以通过术语“未定义行为”和不给出任何行为定义来表示。这三者之间并无区别,都是“未定义行为”。

如果一个程序在所有其他方面都是正确的,在正确的数据上运行,即使包含未指定的行为,它也应该是一个正确的程序,其行为应符合 5.1.2.3 的规定。

除非因条件包含而跳过,否则实现不应对包含 #error 预处理指令的源代码成功完成预处理。

严格一致性程序 只能使用本国际标准中规定的语言和程序库的功能。程序不得产生依赖于任何未指定、未定义或实现定义行为的输出,也不得超出任何最低实现限制。

注:严格一致性程序可以使用本标准中的可选功能(例如附录 F 中的浮点特性),只要确保相关部分有 #ifdef 检查相关的宏即可。例如:

#ifdef __STDC_IEC_559__
	/* ... */
	fesetround(FE_UPWARD);
	/* ... */
#endif

一致实现 有两种不同形式:宿主和独立。一致宿主实现 应该接受所有的严格一致性程序,而 一致独立实现 应该接受所有不使用复数类型且只使用 <float.h><iso646.h><limits.h><stdarg.h><stdbool.h><stddef.h><stdint.h> 标头部分标准库(见第7章)的严格一致性程序。一致实现可以有扩展功能(例如额外库函数),只要其能保证严格一致性程序的行为不变。

注:这意味着一致实现除了本国际标准明确指出的保留词外不能保留其他标识符。

一致性程序 指某个一致实现能接受的程序。

注:严格一致性程序旨在在不同的一致实现中获得最大的可移植性,而一致性程序可以依赖特定一致环境的不可移植特性。

实现应当附带一个定义所有实现定义行为,本地化特征和所有扩展功能的文档。

前向引用:条件包含(6.10.1)、error 指令(6.10.5)、浮点类型特征(7.7)、替代拼写(7.9)、整型大小(7.10)、可变参数(7.15)、布尔类型及其值(7.16)、通用定义(7.17)、整型(7.18)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值