C语言新标准C11

news/2024/11/20 15:39:26/
2011年12月8号,ISO 发布了新的 C 语言的新标准——C11,之前被称为C1X,官方名称 ISO/IEC 9899:2011。
相比C99的变化
1. 对齐处理操作符 alignof,函数 aligned_alloc(),以及 头文件 <stdalign.h>。见 7.15 节。
2. _Noreturn 函数标记,类似于 gcc 的 __attribute__((noreturn))。例子:
_Noreturn void thrd_exit(int res);
3. _Generic 关键词,有点儿类似于 gcc 的 typeof。例子:
#define cbrt(X) _Generic((X), long double: cbrtl, \
default: cbrt, \
float: cbrtf)(X)
4. 静态断言( static assertions),_Static_assert(),在解释 #if 和 #error 之后被处理。例子:
_Static_assert(FOO > 0, "FOO has a wrong value");
5. 删除了 gets() 函数,C99中已经将此函数被标记为过时,推荐新的替代函数 gets_s()。
6. 新的 fopen() 模式,(“…x”)。类似 POSIX 中的 O_CREAT|O_EXCL,在文件锁中比较常用。
7. 匿名结构体/联合体,这个早已经在 gcc 中了,我们并不陌生,定义在 6.7.2.1 p13。
8. 多线程支持,包括:_Thread_local,头文件 <threads.h>,里面包含线程的创建和管理函数(比如 thrd_create(),thrd_exit()),mutex (比如 mtx_lock(),mtx_unlock())等等,更多内容清参考 7.26 节。
9. _Atomic类型修饰符和 头文件 <stdatomic.h>,见 7.17 节。
10. 带边界检查(Bounds-checking)的函数接口,定义了新的安全的函数,例如 fopen_s(),strcat_s() 等等。更多参考 Annex K。
11. 改进的 Unicode 支持,新的头文件 <uchar.h> 等。
12. 新增 quick_exit() 函数,作为第三种终止程序的方式,当 exit() 失败时可以做最少的清理工作(deinitializition),具体见 7.22.4.7。
13. 创建复数的宏, CMPLX(),见 7.3.9.3。
14. 更多浮点数处理的宏 (More macros for querying the characteristics of floating point types, concerning subnormal floating point numbers and the number of decimal digits the type is able to store)。
15. struct timespec 成为 time.h 的一部分,以及宏 TIME_UTC,函数 timespec_get()。

http://www.ppmy.cn/news/615656.html

相关文章

C51的1602LCD液晶显示

C51的1602LCD液晶显示 1.引脚功能介绍2.基本操作时序3. 1602 液晶的指令介绍4.实例 1.引脚功能介绍 1602 液晶就是可以显示 2 行&#xff0c;每行 16 个字符的液晶&#xff0c;一共 16 个引脚&#xff0c;每个引脚的功能&#xff0c;我们都可以在它的数据手册上获得。 液晶的电…

##C11

auto auto的用法&#xff0c;可以根据变量值&#xff0c;推出变量类型&#xff0c;其中比较特殊的就是cosnt引用用法 int main() { const int a10; auto xa;// x int auto& ya; //auto就是const int & 类型 } 错误用法&#xff1a;auto&ya,ua; //这个时候u就不…

C11与C99的变化对比

C11标准曾用名C1X。 C11标准是C语言标准的第三个版本&#xff0c;前一个标准版本是C99标准。2011年12月8日&#xff0c;国际标准化组织(ISO)和国际电工委员会 (IEC&#xff09;旗下的C语言标准委员会正式发布了C11标准。 C11标准的最终定稿草案是免费开放的&#xff0c;但是…

C11 标准下的 C 语言编程

一、摘要 一直以来&#xff0c;我们所学习的 C 语言大多是 ANSI-C 标准&#xff0c;也就是后来被标准化的 C89 标准。在 1999 年发布的 C99 和 2011 年发布的 C11 标准在此之上&#xff0c;引入了许多新的特性&#xff0c;也解决了许多问题。因此&#xff0c;随着标准的发布&a…

Visual C++ 的 fatal error C1001

如果你是一位老资格的 Visual C 用户&#xff0c;那一定会对 Visual C 的 fatal error C1001 不会陌生。如果你在用 VC6 编一个规模较大的工程&#xff0c;如果你在用 VC6 编译一个用到了模板的工程&#xff0c;那恭喜你&#xff0c;这个错误会时不时冒地出来和你打招呼&#x…

C++ 错误error C2011:类型重定义的解决办法

当在.h文件中定义一个枚举&#xff08;enum&#xff09;类型时&#xff0c;由于这个.h的头文件&#xff0c;会被其他好几个.h文件引用&#xff0c;所以在编译的时候&#xff0c;会出现error C2011:类型重定义的报错。 这样的错误一度让楼主怀疑人生啊。 其解决办法是&#xf…

五、菜单管理

云尚办公系统&#xff1a;菜单管理 B站直达【为尚硅谷点赞】: https://www.bilibili.com/video/BV1Ya411S7aT 本博文以课程相关为主发布&#xff0c;并且融入了自己的一些看法以及对学习过程中遇见的问题给出相关的解决方法。一起学习一起进步&#xff01;&#xff01;&#x…

【FoxMail】无法登录, 一直让创建问题.

问题原因: 每次打开FoxMail的时候都显示创建, 创建完成之后,再次打开FoxMail还是显示创建. 出现这个现象的原因是因为使用的公司电脑, 我登录电脑的账号并非超级管理员, 因此导致无法登录. 解决方式: 右键快捷图标, 点击"以管理员身份运行", 即可直接登录进去. 但是…