`
kelehaier
  • 浏览: 5052 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

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

阅读更多
做C语言开发的人,经常会遇到“ANSI C”、“ISO C”与“Standard C”三种术语,经常会让人傻傻分不清楚。博主之前按也是搞不清三者的关系,于是某天下定决心,一定要搞清楚三者的关系,先百度上搜下。下面是在百度百科上搜索关键字“ANSI C”得到的结果:

================================分割线========================================

ANSI C_百度百科

1.C 的第一个标准是由ANSI发布的。虽然这份文档后来被国际标准化组织(ISO)采纳并且ISO发布的修订版也被ANSI采纳了,但名称ANSI C(而不是 ISO C)仍被广泛使用。一些软件开发者使用ISO C,还有一些使用 Standard C。
2.C89
1983年,美国国家标准协会(ANSI)组成了一个委员会,X3J11,为了创立 C 语言的标准。经过漫长而艰苦的过程,该标准于1989年完成,并在作为ANSI X3.159-1989 "Programming Language C"正式生效。因为这个标准是1989年发布的,所以一般简称C89标准。有些人也把C89标准叫做ANSI C,因为这个标准是美国国家标准协会(ANSI)发布的。
3.C90
在1990年,ANSI C89标准被国际标准化组织(ISO)和国际电工委员会(IEC)采纳为国际标准,名叫ISO/IEC 9899:1990 - Programming languages -- C[2] ,有些人简称C90标准。因此,C89和C90通常指同一个标准,一般更常用C89这种说法。
4.C99
在2000年3月,国际标准化组织(ISO)和国际电工委员会(IEC)采纳了第二个C语言标准,名叫ISO/IEC 9899:1999 - Programming languages -- C,简称C99标准。[3]
5.C11

在2011年12月,国际标准化组织(ISO)和国际电工委员会(IEC)采纳了第三个C语言标准,名叫ISO/IEC 9899:2011 - Information technology -- Programming languages -- C,简称C11标准。它是C程序语言的最新标准。

================================分割线========================================
我来分析下这5点的含义。
从第1点来看,刚开始美国自己的标准协会ANSI给C语言定义了一套标准,我取名叫C标准1。国际标准化组织ISO看到了,眼红了,就把C标准1拿来瞧了瞧,跟ANSI说“不错,蛮牛逼的,但是有几个地方还不完善啊,这样,我来修改下”。于是ISO修改了一些地方,然后也发布了一个标准,我取名叫C标准2吧。ANSI一看,哟,老兄帮我修改了下,不错嘛,那我也接受,于是ANSI与ISO就承认这个C标准2了。但是ANSI的fans还是把C标准2念成ANSI C标准,ISO的fans就把C标准2念成ISO C标准,既不是ANSI的fans也不是ISO的fans就把C标准2念成Standard C。
从第2点来看,刚开始ANSI制定了C标准,这一制定就耗费了6年时间,终于在89年发布了,所以就叫C89标准了,也就是我取名的C标准1;
从第3点来看,在90年的时候,ISO等组织采纳了C89标准,然后做了一些修改再发布,就变成C90标准了,也就是我取名的C标准2;
从第4点来看,到了2000年,ISO可能又修改了C90标准,并且发布新标准,就叫C99标准了;
从第5点来看,到了2011年,ISO可能又修改了C99标准,并且发布新标准,就叫C11标准了。看来一般是每隔10年就会发布一个新标准啊。
有了标准,那么编写跨平台的代码就容易多了。具备跨平台的代码需要如下两个条件满足:
1.代码中没有依赖针对具体硬件的代码;
2.编译器要支持C标准;

这样在A硬件平台上写的代码,无需或者只需做极小的改动,经过编译器的编译,就可以移植到B硬件平台上了。
分享到:
评论

相关推荐

    ANSI.C++.Standard.rar_ANSI C_ANSI_ISO_ISO/IEC 14882_iso 14882_is

    《ANSI.C++.Standard.rar》是一个压缩包,包含与ANSI C++标准相关的文档,特别是ISO/IEC 14882标准的详细信息。这个标准是C++编程语言的国际规范,由美国国家标准学会(ANSI)和国际标准化组织(ISO)共同制定,并在1998...

    ANSI C Standard

    《ANSI C Standard》是C语言发展的重要里程碑,它为C语言设定了统一的规范,确保了代码在不同系统上的可移植性。这份标准由美国国家标准协会(American National Standards Institute,简称ANSI)制定,因此被称为...

    C语言标准(ANSI+C+C89+C99)

    C语言标准(ANSI+C+C89+C99),内有C Standard ISO-IEC 9899-1999 (E),ISO_IEC_9899_1999_Cor_1_2001(E),ISO_IEC_9899_1999_Cor_2_2004(E),The rationale for the C99 standard,WG14 n1124 (C99 + TC1 + TC2)。

    C/C++标准文档(ANSI/ISO)

    1 ANSI/ISO 9899-1990 ANSI for Programming Languages-C 2 Rationale For International Standard-Programming Languages--C Revision5.10 3 C++语言ISO标准文档

    Ansi.C.Standard英文版经典

    《Ansi.C.Standard》是C语言编程领域的一部权威性标准文档,由美国国家标准学会(American National Standards Institute,ANSI)制定,也被国际标准化组织(International Organization for Standardization,ISO)...

    ANSI C Standard(C99).pdf

    ANSI C标准(C99)是C语言的一个重要版本,全称为ISO/IEC 9899:1999(E),它在1999年被正式发布,是C语言发展历程中的一个里程碑。C99标准在原有的C语言基础上,增加和改进了多项功能,使之更加符合现代编程的需求。...

    C Standard C89 C90-ISO_IEC-9899-1990-含书签.pdf

    《C Standard C89 C90-ISO_IEC_9899-1990-含书签.pdf》这份文档是关于C语言编程标准的ISO/IEC 9899:1990(通常称为C90)的官方英文完整版,包含了完整的书签,便于查阅。C90是C语言的第一个国际标准化版本,它是在...

    ansi c standard

    **ANSI C**(American National Standards Institute C)是指由美国国家标准协会制定的C语言标准。这一标准在国际上也被称为**ISO C**,即由国际标准化组织(ISO)发布的C语言标准。ANSI C的主要目标是为C语言提供一...

    C语言编程常见问题解答之ANSI/ISO标准.pdf

    从技术上讲有两种 C 语言标准,一种来自 ANSI(American National Standard Institute,美国国家标准协 会)X3J11 委员会,另一种来自 ISO(International Standard Organization,国际标准协会)9899—1990。由于ISO ...

    ANSI/ISO/IEC International Standard(IS) Database Language SQL Part 5 Host Language Bindings (SQL Bindings)

    通过上述内容可以看出,ANSI/ISO/IEC国际标准(IS)数据库语言SQL第5部分:宿主语言绑定(SQL绑定)标准为实现SQL与高级编程语言的集成提供了详细的指导和技术规范。这对于开发者来说是一个非常有价值的资源,它不仅...

    ANSI C standard file

    ANSI C标准说明文档。个人认为这个文件翻译的不是很好,但同类资源又不是很多,建议和原文对照着看,能纠正翻译的谬误,也能加深理解。

    Ansi C standard

    在《Ansi C标准》中,你可以了解到C语言的基础知识,包括变量、数据类型(如int、char、float等)、运算符(算术、比较、逻辑等)、控制结构(如if语句、for循环、while循环)、函数的定义与调用、指针的使用等。...

    [c++] ANSI c++ Standard

    **标题与描述**:“[c++] ANSI c++ Standard”这一标题与描述均指向了美国国家标准学会(ANSI)所采纳并通过的C++语言标准——ISO/IEC 14882:1998。这份标准文档为C++语言的规范制定了国际统一的规定,确保了不同...

    CStandard.zip_9899_IEC_ISO/IEC 9899_iso 9899_iso iec 9899 1990

    C语言的标准版本经历了多次更新,但1990年的ISO/IEC 9899是最初的版本,它为后来的C89(ANSI C)奠定了基础。这个标准的发布标志着C语言从一个由贝尔实验室开发的特定实现转变为一个国际认可的通用编程语言,确保了...

    C语言第五版 第1章

    1990年,国际标准化组织ISO(International Standard Organization)接受C 89作为国际标准ISO/IEC 9899: 1990,它和ANSI的C 89基本上是相同的。 1999年,ISO又对C语言标准进行了修订,在基本保留原来的C语言特征的基础...

    ANSI.ISO.C++.Professional.Programmer.Handbook.rar_ISO

    《ANSI/ISO C++ Professional Programmer's Handbook》是C++编程领域的一本权威指南,针对ANSI/ISO标准进行了深入的解析和详细的介绍。这本书旨在帮助程序员熟练掌握C++语言,提升专业技能,以达到职业程序员的标准...

    C标准库.The Standard C Library

    C标准库,也称为ISO/IEC 9899或ANSI C,包含了多个头文件,如、、等,它们分别提供了输入输出、内存管理、字符串处理等功能。例如,中的printf()和scanf()函数用于格式化输出和输入;中的malloc()和free()负责动态...

Global site tag (gtag.js) - Google Analytics