• 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标准。

  • 相关阅读:
    瀚高数据库开机自启动失败
    【Linux 25】网络套接字 socket 概念
    ASO优化之新人必备的基础知识技能
    os模块介绍
    Javascript抓取京东、淘宝商品数据
    如何从清空的回收站中恢复已删除的Word文档?
    EI级 | Matlab实现TCN-GRU-MATT、TCN-GRU、TCN、GRU多变量时间序列预测对比
    【c++】逆波兰表达式求值(详解)
    KafKa3.x基础
    举报垃圾邮件有何作用?有专门的垃圾邮件举报通道吗?
  • 原文地址:https://blog.csdn.net/yanlaifan/article/details/133970793