• 1.摘要
  • 2.基本信息
  • 3.简介
  • 4.新特性

ISO/IEC 9899:2011

ISO/IEC 9899:2011是C程序语言的现行标准。

基本信息

  • 中文名

    ISO/IEC 9899:2011

  • 采纳时间

    2011年12月

  • 属于

    C程序语言的现行标准

  • 新特性

    增加了一些新的特性

简介

在2011年12月,ANSI 采纳了 ISO/IEC 9899:2011 标准。这个标准通常简称C11,它是C程序语言的现行标准。

2011年12月8日,ISO正式发布了新的C语言的新标准C11,之前被称为C1X,官方名称为ISO/IEC 9899:2011。

2012年07月13日ISO发布ISO/IEC 9899:2011/Cor 1:2012。

新特性

新的标准提高了对C++的兼容性,并增加了一些新的特性。这些新特性包括:

对齐处理(Alignment)的标准化(包括_Alignas标志符,alignof运算符, aligned_alloc函数以及头文件。

_Noreturn函数标记,类似于 gcc 的 __attribute__((noreturn))。

_Generic 关键字。

多线程(Multithreading)支持,包括:_Thread_local存储类型标识符,头文件,里面包含了线程的创建和管理函数。

增强的Unicode的支持。基于C Unicode技术报告ISO/IEC TR 19769:2004,增强了对Unicode的支持。包括为UTF-16/UTF-32编码增加了char16_t和char32_t数据类型,提供了包含unicode字符串转换函数的头文件.

删除了 gets()函数,使用一个新的更安全的函数gets_s()替代。

增加了边界检查函数接口,定义了新的安全的函数,例如fopen_s(),strcat_s() 等等。

增加了更多浮点处理宏。

匿名结构体/联合体支持。这个在gcc早已存在,C11将其引入标准。

静态断言(Static assertions),_Static_assert(),在解释 #if 和 #error 之后被处理。

新的 fopen() 模式,(“…x”)。类似 POSIX 中的 O_CREAT|O_EXCL,在文件锁中比较常用。

新增 quick_exit()函数作为第三种终止程序的方式。当 exit()失败时可以做最少的清理工作。

_Atomic类型修饰符和头文件。