ISO/IEC 9899:2011 条款4——标准顺从
4. 标准顺从
1、在本国际标准中,“应该”被解释为对一个实现或一个程序的要求;相反地,“不该”被解释为禁用。
2、如果违反了出现在一个强制规定或运行时强制规定之外的“应该”或“不该”要求,那么该行为是未定义的。否则,未定义行为在本国际标准中通过“未定义行为”这一短语或通过对任一显式定义的行为的缺省进行指定。在这三种表达方式之中没有特别的重点强调;它们都描述了“未定义的行为”。
3、在所有其它方面都正确的一个程序且操作正确的数据,却含有未指定的行为,那么应该是一个正确的程序并且其行为符号5.1.2.3。
4、实现不该成功翻译含有一个#error预处理指示符的预处理翻译单元,除非它是通过条件包含被跳过的一个组的一部分。
5、一个严格顺从本标准的程序应该只使用在本国际标准中所指定的那些语言特征和库。注:一个严格顺从标准的程序可以使用条件特征(见6.10.8.3),使用相关宏的一个适当条件包含预处理确保提供了对严格顺从本国际标准程序的使用。比如:
#ifdef __STDC_IEC_559__ /* 定义了FE_UNWARD */
/* ... */
fesetround(FE_UPWARD);
/* ... */
#endif
它不应该产生依赖于任一未指定的、未定义的以及实现自定义的行为,并且不应该超过任一最小实现的限制。
6、顺从标准的两种形式的实现是宿主实现和独立实现。一个顺从标准的住宿实现应该接受任一严格顺从标准的程序。一个顺从标准的独立实现应该接受任一严格顺从标准的程序,对在库条款(条款7)中所指定的特征的使用限于标准头<float.h>,<iso646.h>,<limits.h>,<stdalign.h>,<stdarg.h>,<stdbool.h>,<stddef.h>,<stdint.h>以及<stdnoreturn.h>内容的范围内。一个顺从标准的实现可以含有扩展(包括额外的库函数),他们不改变任一顺从标准程序的行为。注:这暗示了一个顺从标准的实现在本国际标准中所显式保留的标识符外不保留标识符。
7、一个顺从标准的程序是对于一个顺从标准的实现可接受的程序。注:严格顺从标准的程序目的在于在顺从标准的实现之间最大地达成可移植性。顺从标准的程序可以依赖于一个顺从标准的实现的不可移植的特征。
8、一个实现应该伴随其定义所有实现自定义以及区域特定特征和所有扩展的文档。
ISO/IEC 9899:2011 条款4——标准顺从的更多相关文章
- ISO/IEC 9899:2011 条款3——术语、定义与符号
3. 术语.定义与符号 1.对于此国际标准的意图,应用了以下定义.其它术语是在用斜体类型或一个语法规则左侧出现的地方定义.在本国际标准中所显式定义的术语不被假定为对其它地方所定义的类似术语的隐式引用. ...
- ISO/IEC 9899:2011 条款5——5.2.1 字符集
5.2.1 字符集 1.两个字符集和它们相关联的依次顺序应该被定义:写在源文件中的集合(源字符集),以及在执行环境中被解释的集合(执行字符集).每个集合此外被划分为一个基本字符集,其内容由本子条款给出 ...
- ISO/IEC 9899:2011 条款6.4.2——标识符
6.4.2 标识符 6.4.2.1 通用 语法 1.identifier: identifier-nodigit identifier identifier-nondigit identifie ...
- ISO/IEC 9899:2011 条款6.4.3——通用字符名
6.4.3 通用字符名 语法 1.通用字符名: universal_character-name: \u hex-quad(四位十六进制数) \U hex-quad hex-quad hex-quad ...
- ISO/IEC 9899:2011 条款5——5.1.2 执行环境
5.1.2 执行环境 1.定义了两个执行环境:独立式(freestanding)以及宿主的(hosted).在这两种情况下,当一个派定的C函数被执行环境调用时,程序就启动.所有具有静态存储周期的对象应 ...
- ISO/IEC 9899:2011 条款5——环境
5.环境 1.一个实现在两个不同的数据处理系统环境下分别翻译C源文件与执行C程序,在本国际标准中分别称为翻译环境和执行环境.它们的特征定义并包含了根据顺从标准实现的语法及语义规则所构造的顺从标准的C程 ...
- ISO/IEC 9899:2011 条款6.7.3——类型限定符
6.7.3 类型限定符 语法 1.type-qualifier: const restrict volatile _Atomic 约束 2.除了指针类型(其被引用的类型是一个对象类型)之外的类型,不应 ...
- ISO/IEC 9899:2011 条款5——5.2.4 环境限制
5.2.4 环境限制 1.翻译与执行环境都约束了语言翻译器和库的实现.下面概述了对一个顺应标准实现的语言相关的环境限制:库相关的限制在条款7中讨论. 5.2.4.1 翻译限制 1.实现应该能够翻译并执 ...
- ISO/IEC 9899:2011 条款6.3.1——算术操作数
6.3.1 算术操作数 6.3.1.1 布尔.字符以及整数 1.每个整数类型具有一个整数转换等级,如下定义: ——两个带符号的整数类型都不应该具有相同等级,即使它们具有相同的表示. ——一个带符号整数 ...
随机推荐
- 乌班图安装Lnmp环境
1.nginx //切到root用户 sudo su //更新源 apt-get update //安装 apt-get install nginx //安装完成后配置文件目录 cd /etc/ngi ...
- 云计算与大数据实验:Hbase shell终端操作之数据操作一
[实验目的] 1)学会向表中添加记录 2)学会添加记录时动态添加列 3)学会查看一条记录 4)学会查看表中的记录总数 5)学会删除记录 [实验原理] Hbase shell作为Hbase数据的客户端, ...
- [AWS][GUI][VNC]rhel 7 安装GUI ,配置VNC
预计阅读时间:15分钟 预计配置时间:30分钟 (前提是已经申请AWS的EC2的rhel7 云主机并且成功运行) 目前AWS 亚马逊云免费试用一年,申请一个学习使用 痛点:没有GUI,无法搭建Jen ...
- 二进制搭建Kubernetes集群(最新v1.16.0版本)
目录 1.生产环境k8s平台架构 2.官方提供三种部署方式 3.服务器规划 4.系统初始化 5.Etcd集群部署 5.1.安装cfssl工具 5.2.生成etcd证书 5.2.1 创建用来生成 CA ...
- easyui dialog 设置弹窗位于页面中间
原文链接:https://my.oschina.net/jingyao/blog/776603 此方法为解决页面含有滚动条时,弹窗位置错误问题,此方法可将带滚动条页面中弹窗显示于页面中间. $(&qu ...
- keras神经网络开发知识笔记
mnist数据集获取60000个训练样本和10000个测试样本,样本为0-9十个数字,用全连接神经网络进行训练,并测试结果. 例程采用60000个数据样本进行训练,对于一般的电脑来说,这样训练会比较费 ...
- postgres —— 窗口函数入门
注:测试数据在 postgres —— 分组集与部分聚集 中 聚集将多行转变成较少.聚集的行.而窗口则不同,它把当前行与分组中的所有行对比,并且返回的行数没有变化. 组合当前行与 production ...
- 利用Python绘制一个正方形螺旋线
1 安装turtle Python2安装命令: pip install turtule Python3安装命令: pip3 install turtle 因为turtle库主要是在Python2中使用 ...
- 【Selenium-WebDriver实战篇】基于java的selenium之验证码识别内容
==================================================================================================== ...
- 题解 UVa10791
题目大意 多组数据,每组数据给出一个正整数 \(n\),请求出一组数 \(a_1\cdots a_m\),满足 \(LCM_{k=1}^ma_k=n\) 且 \(\sum_{k=1}^ma_k\) 最 ...