C语言

C99是标准ISO/IEC 9899:1999的简称。

c99是在c89的基础上发展起来的,增加了基本数据类型,关键字和一些系统函数等。其实在初学阶段C89(ANSI C)和C99的区别是不易察觉的,所以不必太在意这个。

C99有一部分是对于大字符集的优化(很多资料上写的是ANSI标准化),还加入了一些数据库函数,是C89之后的标准,我们用的C是C89标准的,C++是C89编写的,目前的

C99标准其实在以前的编译器中就或多或少的支持了,目前完全支持的有这些:GCC、Borland C++等。

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

C11相比C99的变化

1. 对齐处理操作符alignof,函数aligned_alloc(),以及头文件。见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,头文件,里面包含线程的创建和管理函数(比如thrd_create(),thrd_exit()),mutex (比如mtx_lock(),mtx_unlock())等等,更多内容清参考7.26 节。

9. _Atomic类型修饰符和头文件,见7.17 节。

10. 带边界检查(Bounds-checking)的函数接口,定义了新的安全的函数,例如fopen_s(),strcat_s() 等等。更多参考Annex K。

11. 改进的Unicode 支持,新的头文件等。

C11语言比C99,C11相比C99的变化相关推荐

  1. C语言三大标准C89,C99和C11

    C89 标准 1983 年美国国家标准局(American National Standards Institute,简称 ANSI)成立了一个委员会,专门来制定C语言标准.1989 年C语言标准被批 ...

  2. C标准-->C89/C99/C11

    版权声明:本文为CSDN博主「quectel-wifi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/xie ...

  3. Linux 内核,30 年C 语言将升级至 C11

    Linux 内核,30 年C 语言将升级至 C11 还在使用 89 年版 C 语言的 Linux 内核,现在终于要做出改变了.今天,Linux 开源社区宣布,未来会把内核 C 语言版本升级到 C11, ...

  4. C语言的C89标准与C99标准

    在1987年,ANSI(美国国家标准学会)公布了新标准----87 ANSI C 1990年,国际标准化组织接受了87 ANSI C , 把它作为 ISO C 的标准,也就是我们常说的C89,是目前应 ...

  5. 所见即所得编辑器_文档标记语言与所见即所得编辑器相比的优势

    所见即所得编辑器 by Christian Neumanns 克里斯蒂安·纽曼斯(Christian Neumanns) 文档标记语言与所见即所得编辑器相比的优势 (The advantages of ...

  6. c语言递归汉诺塔次数,c语言递归解决汉诺塔参数变化的疑惑

    c语言递归解决汉诺塔参数变化的疑惑 答案:3  信息版本:手机版 解决时间 2020-04-05 14:20 已解决 2020-04-05 10:49 #include void main() {vo ...

  7. C语言关键字之C89、C99、C11

    1989年,ANSI发布了第一个完整的C语言标准--ANSI X3.159-1989,简称"C89",人们也习惯称其为"ANSI C". C89关键字32个 1 ...

  8. C语言关键字 ISO/ANSI C90 C99 C11

    面试考点 https://blog.csdn.net/csdn_kou/article/details/81113215 * 有的常用的我们都不知道是关键字,比如sizeof.这是面试中的考点,要注意 ...

  9. C发展史:KR C/C89/C99/C11 C++发展史: C++98/C++03/C++11

    C语言的发展阶段 C语言之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言. 1967年,剑桥大学的Martin Richards对CPL语言进行了简 ...

  10. MSVC (Visual C++) 对于ISO C99, C11, C17 等语言标准的支持情况

    C99 Visual Studio 2013首次引入C99的语言特性和库函数的支持,但只支持有限的语言特性: _Bool Compound literals. Designated initializ ...

最新文章

  1. java csv格式文件写入_java csv文件写入
  2. 谷歌发布深度学习新算法,适用于真实机器人的技能学习
  3. 一步步学习SPD2010--第十一章节--处理母版页(7)--管理Content Placeholders
  4. Spring源码窥探之:xxxAware接口
  5. 【暴力】UVALive - 4882 - Parenthesis
  6. LightOJ 1026 桥 1063 割点
  7. 在Spring使用AWS SQS创建消息驱动Bean
  8. spring MVC配置form支持PUT和DELETE方法
  9. 有限元python编程流行吗_Python进行有限元分析
  10. Docker实践(六)部署redis
  11. node服务器给客户端发消息,上的node.js发送消息客户端 - 服务器 - 客户端上socket.io(Sen...
  12. leetcode - 4. Median of Two Sorted Arrays
  13. eos操作系统_【EOS币资讯】EOS币与以太坊有什么不同?
  14. 刘润:一个人优不优秀,就看这3件小事
  15. python编写代码自动运行程序_利用Python编写自动打开指定软件的程序
  16. 基于JTT808协议的车联网网关中间件
  17. 搭建frp进行内网穿透
  18. STM32使用W25QXX flash闪存芯片基于串口自由写入或读取数据
  19. 梯度消失和梯度爆炸原因及其解决方案
  20. 玩转Ubuntu(Linux原生游戏 超级企鹅(SuperTux))

热门文章

  1. 极速办公(word)如何文字居中
  2. 威纶触摸屏宏指令编程,字符串相关函数介绍与使用...
  3. 触摸屏与单片机通讯C语言程序,讲述如何实现单片机与触摸屏的通信
  4. 3、检验程序模块化指标---模块化系数-----labview宝典
  5. oracle替换字符串replace
  6. ceb怎么转换成word_win8.1系统将ceb文件格式转换成word的方法
  7. 如何使用RDP报表工具预览页面可以出现完整数据而不是只显示一条
  8. 立创EDA库导入AD库
  9. 【书籍学习】MATLAB书籍\【chinapub】matlab教程一套电子书
  10. A311D项目开发总结