• C语言标准规范版本介绍


    0 Preface/Foreword

    ANSIAmerican National Standards Institute,美国国家标准协会

    ISOInternational Organization for Standardization,国际标准组织

    IECInternational Electrotechnical Commission,国际电工委员会

    IEEEInstitute of Electrical and Electronics Engineers,电气与电子工程师协会,成立于1963年

    1 ANSI C

    ANSI C 标准于1990年颁布(promulgate), 由美国国家标准协会(ANSI)及国际标准化组织(ISO)推出的关于C语言的标准。

    C标准版本历史如下:

    • C89:1983年,美国国家标准协会(ANSI)组成了一个委员会,X3J11,为了创立 C 语言的标准。经过漫长而艰苦的过程,该标准于1989年完成,并在作为ANSI X3.159-1989 "Programming Language C"正式生效。因为这个标准是1989年发布的,所以一般简称C89标准。有些人也把C89标准叫做ANSI C,因为这个标准是美国国家标准协会(ANSI)发布的。
    • C90:在1990年,ANSI C89标准被国际标准化组织(ISO)和国际电工委员会(IEC)采纳为国际标准,名叫ISO/IEC 9899:1990 - Programming languages -- C [2]  ,有些人简称C90标准。因此,C89和C90通常指同一个标准,一般更常用C89这种说法。
    • C99:在2000年3月,国际标准化组织(ISO)和国际电工委员会(IEC)采纳了第二个C语言标准,名叫ISO/IEC 9899:1999 - Programming languages -- C,简称C99标准
    • C11:在2011年12月,国际标准化组织(ISO)和国际电工委员会(IEC)采纳了第三个C语言标准,名叫ISO/IEC 9899:2011 - Information technology -- Programming languages -- C,简称C11标准。它是C程序语言的最新标准。

    1.1 编译器的支持

    ANSI C被几乎所有广泛使用的编译器支持。而且多数C代码是在ANSI C基础上编写。任何仅仅使用标准C并且没有任何硬件依赖假设的代码实际上能保证在任何平台上用遵循C标准的编译器编译成功。如果没有这种预防措施,多数程序只能在一种特定的平台或特定的编译器上编译,例如,使用非标准库,例如图形用户界面库,或者有关编译器或平台特定的特性例如数据类型的确切大小和字节序。

    选择编译

    为了减轻K&R CANSI C标准,__STDC__("standard c")巨集可以被用来将代码分割为ANSI和K&R部分。

    #if __STDC__

    extern int getopt(int,char*const*,constchar*);

    #else

    extern int getopt();

    #endif

    2 K&R C

    C语言程序设计的一种标准,1978年由丹尼斯·里奇(Dennis.Ritchie)创造,Dennis.Ritchie是C语言之父。

    K&R指《The C Programming Language》书的作者Kernighan(柯尼汉)和Ritchie(里奇)二人,该本书也是世界上第一本介绍C语言的书。书中代码的语法并称为K&R C标准。

  • 相关阅读:
    多御安全浏览器新版下载 | 功能优秀性能出众
    使用llvm 编译最新的linux 内核(LoongArch)
    mininet搭建SDN环境访问互联网【C4】
    目标检测算法改进系列之Backbone替换为FocalNet
    Godot4.1 GDExtension 配置VisualStudio方法梳理以及快捷配置工具
    【API封装接口的应用】大数据值得深思的十二个典型应用案例,和未来机遇畅想
    【性能测试】服务端中间件docker常用命令解析整理(详细)
    UE 材质编辑器快捷键
    74.搜索二维矩阵
    2022暑假牛客多校1 (A/G/D/I)
  • 原文地址:https://blog.csdn.net/yanlaifan/article/details/133970793