C语言国际标准 ISO/IEC 9899:1999(E) 翻译(二):
By RiverTime
前言
1 ISO (国际标准化组织) 和 IEC (国际电工委员会) 构成订制国际标准的专门系统。ISO 或 IEC 的成员国家通过由各自组织建立的技术委员会参与国际标准的发展,这些技术委员会处理技术活动的特殊领域。 ISO 和 IEC 技术委员会在互相感兴趣的领域中合作。其他与ISO和IEC联系的政府和非政府的国际组织,也参与了这项工作。
2 国际标准依照 ISO/IEC 指导规则(第三部分)起草。
3 在信息技术领域,ISO 和 IEC 已经建立了一个联合技术委员会, 即ISO/IEC JTC 1。 被联合技术委员会采用的国际标准草案提交到各成员国以备选。发布国际标准需要成员国至少75%的赞成票。
4 ISO/IEC 9899 国际标准是由ISO/IEC JTC 1 联合技术委员会, 信息技术, SC 22 小组委员会, 程序设计语言, 环境和系统软件接口 准备的。为此标准负责的工作组(WG 14)维护因特网上的一个网站: http://www.dkuug.dk/JTC1/SC22/WG14/ ,其中包含附加的与此标准有关的信息,例如:许多在准备期间作出的决策的基本原理,缺陷报告和回应日志。
5 这次第二版取消和替换了第一版(ISO/IEC 9899:1990)及其修正版:
ISO/IEC 9899/COR1:1994, ISO/IEC 9899/AMD1:1995, 和ISO/IEC 9899/COR2:1996。
主要的改变包括:
——通过连字支持受限字符集和 <iso646.h>(最初在AMD1中指定)
——在<wchar.h> 和 <wctype.h>中支持宽字符库。(最初在AMD1中指定)
——通过有效类型支持更多的精确别名规则
——受限制指针
——可变长度数组
——灵活的数组成员
——参数声明列表中的静态和类型限定词
——复数(虚数)支持 <complex.h>
——泛型数学宏 <tgmath.h>
—— long long int 类型和库函数
——增强的最小值限制
——附加的浮点特征 <float.h>
——删除 implicit int
——可靠的整除
——通用字符命名(\u 和 \U)
——扩展的标识符
——十六进制浮点常量和 %a, %A printf/scanf 转换指定
——复合转换
——指定的初始化
—— // 注释
——扩展的整型和库函数: <inttypes.h> 和 <stdint.h>
——删除暗含函数声明
——预处理算法在 intmax_t/uintmax_t 中完成
——混合声明和代码
——选择和重复语句的新的块范围
——整常数类型规则
——整数向上转换规则
——可变参数宏
——<stdio.h> and <wchar.h> 中的 vscanf 函数系列
——附加的数学函数库 <math.h>
——浮点环境访问 <fenv.h>
—— IEC 60559 ( 即 IEC 559 或 IEEE 算法)支持
—— 枚举声明中允许逗号拖尾
—— printf 中 %lf 转换
—— 内联函数
—— snprintf 函数系列 <stdio.h>
—— 布尔类型 <stdbool.h>
—— 等幂类型限定
—— 空宏参数
—— 新的结构类型兼容性规则(tag 兼容性)
—— 附加的预定义宏名字
—— _Pragma 预处理操作符
—— 标准 pragma
—— _ _func_ _ 预定义标识符
—— VA_COPY 宏
—— 附加 strftime 转换指定
—— LIA 兼容性附件
—— 反对在二进制文件的开始用 ungetc
—— 取消以前的“反对别名参数序列”
6 附录 D 和 F 是此标准的标准部分; 附录 A, B, C,E, G, H, I, J, 参考文献, 和索引仅用于提供必要信息。根据 ISO/IEC 指导的第三部分, 本前言, 简介, 注释, 脚注, 和例子仅仅用于提供必要信息。