C11标准ISO/IEC 9899:2011正式发布:语言特性详解

5星 · 超过95%的资源 需积分: 35 326 下载量 36 浏览量 更新于2024-07-20 15 收藏 2.05MB PDF 举报
ISO/IEC 9899:2011,通常称为C11标准,是C语言编程语言的第三次正式修订版,于2011年12月15日发布。这个标准的正式版并不是草稿或预览版,而是经过国际标准化组织(ISO)和国际电工委员会(IEC)的审定和批准,提供了全面且详尽的编程语言规范。 C11标准的发布标志着对C语言的重要更新,它旨在增强语言的功能性和兼容性,同时也引入了一些新的特性以适应不断发展的技术需求。其中,主要内容可能包括: 1. 新增特性:C11引入了诸如宽字符类型、通用可变长度数组(variable-length arrays, VLA)、增强的并发支持(如线程局部存储和原子操作)、以及对C99标准的进一步改进。 2. 内存管理:标准规定了更精确的内存管理和错误处理机制,比如改善了动态内存分配函数的行为,以及对NULL指针的更严谨处理。 3. 并发编程:为了支持多线程编程,C11提供了一些新的库函数和语义,如线程创建、同步和互斥控制,这有助于编写更高效和安全的并发代码。 4. 包容性增强:C11允许编译器支持更多的编译选项和扩展,以适应不同平台和应用的需求,同时保持向后兼容。 5. 整数运算:标准可能还优化了整数运算性能,比如增加了对特定整数类型的支持,提升了计算效率。 6. 标准库更新:C11标准也更新了标准库,包括更完善的字符串处理功能、错误处理模块和数学函数等。 7. ISO/IEC版权和许可:文档中的版权信息强调了未经许可复制或利用该标准文本的限制,确保了知识产权的保护。 ISO/IEC 9899:2011 C11标准的正式版对于C语言程序员来说是一次重要的里程碑,它不仅扩展了语言功能,还提高了程序的可靠性和性能,对推动现代软件开发产生了深远影响。在使用C11进行开发时,了解并遵循这些新特性至关重要。
2012-10-03 上传
2011年12月8日,ISO正式发布了新的C语言的新标准C11,之前被称为C1X,官方名称为ISO/IEC 9899:2011。 新的标准提高了对C++的兼容性,并增加了一些新的特性。这些新特性包括: 对齐处理(Alignment)的标准化(包括_Alignas标志符,alignof运算符, aligned_alloc函数以及<stdalign.h>头文件。 _Noreturn 函数标记,类似于 gcc 的 __attribute__((noreturn))。 _Generic 关键字。 多线程(Multithreading)支持,包括:_Thread_local存储类型标识符,<threads.h>头文件,里面包含了线程的创建和管理函数。 增强的Unicode的支持。基于C Unicode技术报告ISO/IEC TR 19769:2004,增强了对Unicode的支持。包括为UTF-16/UTF-32编码增加了char16_t和char32_t数据类型,提供了包含unicode字符串转换函数的头文件<uchar.h>. 删除了 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类型修饰符和<stdatomic.h>头文件。