ANSI C、ISO C、Standard C、C89、C90、C99

ANSI C、ISO C 和Standard C是由ANSI(AmericanNational Standards Institute,美国国家标准学会)或ISO(International Organization for Standardization,国际标准化组织)等标准机构发布的C语言标准。

根据制定的语言标准开发软件有助于提高软件在编译器间的可移植性。

C语言的第一个语言标准是由ANSI(AmericanNational Standards Institute,美国国家标准学会)发布。后来,ISO(International Organization for Standardization,国际标准化组织)采纳了这份标准并发布其修订版。

ANSI C特指ANSI发布的第一版C语言标准。ISO C则指ISO发布的C语言标准。StandardC则是相对于ANSI C和ISO C的一个泛称,表示遵循标准规范的C。

C89(ANSI C)

C语言的第一个标准是由ANSI发布。在1983年,ANSI成立X3J11委员制定C语言标准规范。该委员会在1989年完成C语言标准的制定,并作为ANSIX3.159-1989 "Programming Language C"正式生效。这个标准被称作"ANSIC"或"C89"(为了区别于C99)。

C90

在1990年,ISO根据ANSI C标准(仅进行少量的格式更改)发布ISO/IEC 9899:1990。这个版本被称为C90。C89和C90在本质上是同一种语言标准。

C95

在1995年,ISO根据ANSI C标准发布了其修订版ISO/IEC 9899/AMD1:1995,也称C95。该版本除了修改ANSI C标准中的错误外,还添加了一些语言特性,如提供宽字符(wide character)、制定标准宏__STDC_VERSION__规范等。

C99

在2000年,ANSI采纳了ISO / IEC 9899:1999标准,该标准通常称为C99。相比于之前的标准,本标准显著增加了一些特性,如:

提供新的内置数据类型:longlong,_Bool等;

添加新的核心语言功能,如静态数组索引,可变长度数组,可变宏等;

添加新的库头文件,如stdint.h、tgmath.h、complex.h等;

删除了几个危险的C89语言功能,如隐式函数声明和隐式int等;

为了支持C11标准,ANSI和ISO分别撤回该标准。

C11

C11”是C语言的当前标准。相比于之前的标准,C11的显著特性有:支持Unicode、提供跨平台多线程API(threads.h)、在语言内核和库文件stdatomic.h中支持原子类型。ISO为C11发布了一个技术勘误:

ISO / IEC 9899:2011 / Cor 1:2012

参考:

https://en.wikipedia.org/wiki/ANSI_CANSI C

https://zh.wikipedia.org/wiki/ANSI_CANSI C

ANSI C、ISO C、Standard C、C89、C90、C99相关推荐

  1. 【 C 】KR C 与 ANSI C的区别(KR C,ANSI C,C89,C90,C99)(C11)

    本文转载自:C–K&R C 与 ANSI C的区别 转载的原因在于后面我的C博文也需要这个区分. C语言由Dennis M. Ritchie在1973年设计和实现.从那以后使用者逐渐增加.到1 ...

  2. ANSI C、ISO C、Standard C联系与区别

    做C语言开发的人,经常会遇到"ANSI C"."ISO C"与"Standard C"三种术语,经常会让人傻傻分不清楚.博主之前按也是搞不清 ...

  3. ANSI C、ISO C、Standard 是什么关系?

    关注.星标公众号,不错过精彩内容 整理:黄工 来源:百度百科.知乎 来源地址: https://baike.baidu.com/item/ANSI https://zhuanlan.zhihu.com ...

  4. ASAM XCP及驱动代码、ISO 11898+CANFD,ISO 14229,ISO 15031,ISO 15765相关标准文档

    ASAM XCP及驱动代码.ISO 11898+CANFD.ISO 14229,ISO 15031,ISO 15765文档(选中对应名称,跳转至相应的文档): 一.ISO_11898 Part1_2_ ...

  5. 一文读懂字符编码(ASCII、ISO 8859、GB系列、Unicode)

    一文读懂字符编码(ASCII.ISO 8859.GB系列.Unicode) 一.字符编码相关组织 1.1 ANSI 美国国家标准学会 1.2 Ecma 国际 1.3 ISO/IEC 1.4 统一码联盟 ...

  6. 摄影中快门、光圈、ISO之间的关系

    光圈是一个用来控制光线透过镜头,进入机身内感光面光量的装置,它通常是在镜头内.表达光圈大小我们是用f值.F值越大光圈越小,进入的光就越少:F值越小光圈越大,进入的光就越多.比较常用的光圈值在:8-11 ...

  7. ISO 14229、ISO 15765、ISO 11898的区别

    文章目录 前言 ISO 11898 ISO 14229 ISO 15765 ISO 26262 ISO 27145-4 前言 最近在做车载诊断相关的工作,对于ISO 14229一点都不熟悉,开发起来进 ...

  8. 如何理解光圈、ISO、快门、曝光这几个概念?

    在做影视后期的过程中,遇到了一些听过却理解不清楚的术语,于是乎就上网上搜索,找到了一些大神写的答案.为了下次翻看方便,我将其中有用的整理出来,如下. 1.一个完美的比喻 将摄像机拍出一张完美的照片想象 ...

  9. 相机拍摄时最重要的三个参数——光圈、快门、ISO

    如果你对相机只有很少了解,那么看这篇文章再好不过啦,我结合很多资料,力图用最通俗易懂的方式进行讲解. 相机拍摄时最重要的3个参数就是--光圈.快门.ISO 次重要的参数有--焦距.景深.曝光 在介绍光 ...

  10. Date 的GMT、UTC、ISO、CST、timestamp 等格式 及Moment、Dayjs

    文章目录 一.不同的时间格式 1.1.时间的由来 1.2.国际标准时间格式 1) 格林威治标准时间(GMT): 2) 世界标准时(UTC): 3) 中国标准时间(CST) 4) ISO 8601 标准 ...

最新文章

  1. 华为路由器的常用命令
  2. XGBoost、LightGBM的详细对比介绍
  3. 让Dock即时自动显示和隐藏程序坞不再延迟
  4. #undef 标识符
  5. linux如何安装交叉工具链,Linux:制作mipsel 交叉工具链 (更新版)
  6. redis 值字符串前面部分乱码_Spring-RedisTemplate写入数据乱码问题的复现与解决
  7. Jupyter Notebooks的安装和使用介绍
  8. TCP连接发送窗口问题思考
  9. 文本文件和二进制文件的判别
  10. 怎么比对两个html列表,两个表格对比,如何快速找出不同数据!
  11. java实现随机游走算法_java – 简单的2D随机游走
  12. Android Studio往模拟器添加音乐
  13. 动态范围测试—imatest
  14. 前行、生活、少年、爱情
  15. 【论文翻译】Learning Generalizable and Identity-Discriminative Representations for Face Anti-Spoofing
  16. php漏洞检测修复,PHPStudy漏洞自查与修复指导
  17. 2. stm32h7 移植RL-USB(AC6)MSC模式 基于CUBEMX
  18. 拼多多盈利模式分析研究
  19. ipadpro画流程图_要玩转iPad Pro?不如先下载这些APP
  20. android通过修改rom或通过root屏蔽Home键

热门文章

  1. 产品经理训练营:让正确的事情相继发生 开营直播
  2. AWS知识图谱大赛 -- 负面新闻影响股票基金预测系统架构设计文档
  3. Docker的核心概念镜像Images, 容器Containers, 数据卷Volumes
  4. mysql读写分离中间件都有哪些_MySQL读写分离中间件Atlas
  5. 167.两数之和II-输入有序数组
  6. Normal Equation----machine learning
  7. leetcode 125 valid-palindrome
  8. 操作系统课设 Nachos 实验六、七、八:Nachos 用户程序与系统调用、地址空间的扩展、系统调用 Exec() 与 Exit()
  9. 编译原理完整学习笔记(二):高级程序设计语言
  10. 入坑AI一路过来走过的弯路和思考