没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
N1570
Committee Draft — April 12, 2011
ISO/IEC 9899:201x
INTERNATIONAL STANDARD
©ISO/IEC
ISO/IEC 9899:201x
程序设计语言
— C
摘要
(
封面由
ISO
秘书处提供
.)
本国际标准规定了在编程语言
C
中所表达的程序的形式和解释。其目的是促进
C
语言程序在各种计算
系统上的可移植性,可靠性,可维护性,和高效执行。
包含的条款详述了
C
语言本身和
C
语言执行库的内容。附录概述了它们两者,并列举了影响
C
程序
可移植性的因素。
虽然本国际标准旨在指导知识渊博的
C
语言程序员以及
C
语言翻译系统的实现者,但是文档本身并不
是为了用作一个教程。
请本草案的收件人在其意见中提交它们知道的任何相关专利权,并提供支持文件。
在右边缘
,
使用
"diff marks"
表示从之前的草案
(N1539)
的更改:用
"*"
标记删除的文本,用
"|"
标记
新的或更改的文本。
委员会草案
: 2011
年
4
月
12
日
文档
: N1570
前言
ISO(
国际标准化组织
)
和
IEC(
国际电工委员会
)
形成了全球标准化专业体系
.
属于
ISO
或
IEC
成员
的国家机构通过由各自的组织设立的技术委员会参与了国际标准的制定来处理特定技术活动领域
. ISO
或
IEC
技术委员会在共同利益的领域进行合作
.
其它国际组织
,
公办和民办
,
在与
ISO
及
IEC
联
络中
,
也参加了工作
.
国际标准是根据 ISO/IEC 指示, 第 2 部分给出的规则起草的. 本国际标准是根据第五版(2004 年)起
草的.
在信息技术领域, ISO 和 IEC 建立了一个联合技术委员会 ISO/IEC JTC 1. 联合技术委员会通过的
国际标准草案分发给国家机构进行表决. 出版国际标准需要至少 75% 的国家机构进行表决.
请注意本文件的某些内容可能是专利权的主题的可能性. ISO 和 IEC 不应该负责确定任何或所有的此
类专利权.
本国际标准由联合技术委员会 ISO/IEC JTC 1, Information technology, Subcommittee SC
22, Programming languages, their environments and system software interfaces 编制.
对该标准(WG 14)负责的工作小组在万维网上维护了一个站点, 在
http://www.openstd.org/JTC1/SC22/WG14/ 包含与本标准相关的附加信息, 例如在准备过程中作
出的许多决定的理由, 以及缺陷报告和响应日志.
第三版取消并取代第二版, ISO/IEC 9899:1999, 经 ISO/IEC 9899:1999/Cor 1:2001, ISO/IEC
9899:1999/Cor 2:2004, 和 ISO/IEC 9899:1999/Cor 3:2007 修正. 从前一版本的主要更改包括:
-
条件
(
可选的
)
特性
(
包括以前强制执行的一些特性
)
-
支持多个执行线程
,
包括改进的内存排序模型
,
原子对象
,
和线程本地存储
(<stdatomic.h>
和
<threads.h>)
-
附加浮点特征宏
(<float.h>)
-
查询和指定对象对齐
(< stdalign.h >, <stdlib.h>)
-
Unicode
字符和串
(<uchar.h>)(
最初指定在
ISO/IEC TR 19769:2004)
-
type-generic
表达式
-
静态断言
-
匿名结构和联合
-
无返回函数
-
宏来创建复数
(<complex.h>)
-
支持打开独占访问的文件
-
删除了
gets
函数
(<stdio.h>)
-
添加了
aligned_alloc, at_quick_exit,
和
quick_exit
函数
(<stdlib.h>)
-
(
条件
)
支持边界检查接口
(
最初指定在
ISO/IEC TR 24731−1:2007)
-
(
有条件
)
支持可分析性
在第二版中的主要更改包括:
-
限制字符集通过
digraphs
支持并且
<iso646.h> (
最初指定在
AMD1)
-
宽字符库支持在
<wchar.h>
和
<wctype.h> (
最初指定在
AMD1)
-
通过有效的类型更精确了别名规则
-
限制指针
-
可变长度数组
-
多变数组成员
-
static
和类型限制符在形参数组声明符中
-
复数
(
和虚数
)
支持在
<complex.h>
-
type-generic
数学宏在
<tgmath.h>
-
long long int
类型和库函数
-
增加最小的翻译限制
-
添加浮点特性在
<float.h>
-
移除隐式的
int
-
可靠的整数除法
-
通用字符名称
(\u
和
\U)
-
扩展标识符
-
十六进制浮点常量和
%a
和
%A printf/scanf
转换说明符
-
复合文字
-
指定初始化
-
//
注释
-
扩展的整数类型和库函数在
<inttypes.h>
和
<stdint.h>
-
删除隐式的函数声明
-
预处理算法中完成在
intmax_t/uintmax_t
-
混合声明和代码
-
新的块作用域
,
为选择和重复语句
-
整数常量类型规则
-
整数提升规则
-
具有可变数量实参的宏
-
the vscanf
函数家族在
<stdio.h>
和
<wchar.h>
-
附加的数学库函数在
<math.h>
-
数学库函数处理误差条件
(math_errhandling)
-
浮点环境访问在
<fenv.h>
-
支持
IEC 60559 (
也称为
IEC 559
或
IEEE
算法
)
-
在
enum
声明中允许使用逗号
-
%lf
转换说明符允许在
printf
-
inline
函数
-
snprintf
函数家族在
<stdio.h>
-
布尔类型在
<stdbool.h>
-
等幂的类型限制符
-
空的宏实参
-
新的结构类型兼容性规则
(
标签的兼容性
)
-
附加的预定义的宏的名称
-
_Pragma
预处理运算符
-
标准
pragmas
-
__func__
预定义标识符
-
va_copy
宏
-
附加的
strftime
转换说明符
-
LIA
兼容性附件
-
弃用
ungetc
在二进制文件的开始
-
删除别名数组形参的弃用
-
将数组转换为指针并不局限于左值
-
松弛了在聚合和联合初始化上的约束
-
松弛了在可移植的头名上的约束
-
没有表达式的
return
不允许在返回一个值的函数中
(
反过来也一样
)
附录 D, F, G, K, 和 L 构成本标准的一个标准部分; 附录 A, B, C, E, H, I, J, 参考文献
(bibliography), 和 索引(index)仅供参考. 根据 ISO/IEC 指令的第 2 部分, 本前言
(foreword), 引言(introduction), 注释(notes), 脚注(footnotes), 和示例(examples)也仅供
参考. (译者注: 括号里的单词对应于原标准文档.)
引言
随着新设备和扩展字符集的引入
,
新特性可以被添加到本国际标准中
.
在语言和库条款中的子条款告诫
使用它的实现者和程序员
,
尽管它们本身有效
,
但可以与未来的添加冲突
.
某些特性是逐渐过时的
,
这意味着在本国际标准的未来修订中
,
它们可以被考虑撤销
.
它们被保留是因
为它们被广泛使用
,
但它们使用在新实现中
(
用于实现特性
)
或新程序
(
对于语言
[6.11]
或库特性
[7.31])
是不鼓励的
.
本国际标准分为四个主要的细分
:
-
起始元素
(
条款
1 ~ 4);
-
翻译和执行
C
程序的环境的特性
(
条款
5);
-
语言语法
,
约束
,
和语义
(
条款
6);
-
库功能
(
条款
7).
示例
(Examples)
被提供来阐明所述结构的可能形式
.
脚注
(Footnotes)
被提供来强调在该子条款中或
本国际标准其它条款中描述的规则的影响
.
引用
(References)
被用来引用其它相关的子条款
.
推荐
(Recommendations)
被提供来给予实现者建议或指导
.
附录
(Annexes)
提供了包含在本国际标准中的附
加信息和概述信息
.
一个参考文献
(bibliography)
列出了在标准的准备期间被引用到的文档
.
语言条款
(
条款
6)
来源于
"The C Reference Manual".
库条款
(
条款
7)
是基于
1984 /usr/group Standard.
剩余125页未读,继续阅读
资源评论
煎蛋不怕煎
- 粉丝: 5
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功