ANSI C, Standard C与GCC

作者: 思学 | 来源:发表于2014-12-23 22:46 被阅读1028次

我们常在书本、网页中看到ANSI C的字眼,它到底指什么意思呢?

ANSI C严格来说,应当是指美国国家标准学会(ANSI)对C语言发布的标准。但实际上,ANSI只在1989年发布过C语言的标准,后面的C语言标准都是由国际标准化委员会(ISO)和国际电工委员会(IEC)审定和发布。

既然ANSI只在1989年发布过C语言的标准,那为什么现在还经常使用ANSI C呢,难道我们还在使用C89标准吗?不是的,我们今天使用的是由ISO/IEC发布的C11标准。但由于ANSI C是第一个C标准,并有巨大影响,所以ANSI C这个名字仍被广泛使用。可以说,ANSI C就是Standard C。

GCC支持C90,不完全支持C99。在不指定C标准的情况下,GCC默认使用GNU C。GNU C = C90 + GNU Extensions = C90 + (some features in C99 + some features in C11)。默认情况下,GCC使用-std=gnu90。如果按照C99或C11标准编写C语言程序的话,GCC编译时需要添加编译器选项-std=gnu99或-std=gnu11

例如使用 for(int i = 0; i < 10; i++) ... 这样的语句,只有加上编译器选项-std=gnu99,gcc才能编译通过。

相关内容:

ANSI 是美国国家标准学会(American National Standards Institute)的缩写,它由公司、政府和其他成员组成的自愿组织,它们协商与标准有关的活动,审议美国国家标准,并努力提高美国在国际标准化组织中的地位,是国际标准化委员会(ISO)和和国际电工委员会(IEC)常任理事成员之一。

1983年,ANSI根据C语言问世以来各种版本对C的发展和扩充,制定了C 的第一个标准,并于1989年发布。这个标准被称为C89标准,也称作ANSI C。1990年ISO和IEC采用了ANSI C(带有一些小改动)为国际标准,所以C89标准又被称为C90标准。后来,ISO和IEC在1995年发布了C95标准,1999年发布了C99标准,2011年发布了C11标准。

GCC(GNU Compiler Collection,GNU编译器套装),是一套由GNU开发的编程语言编译器。原名为GNU C语言编译器(GNU C Compiler),因为它原本只能处理C语言。GCC很快地扩展,变得可处理C++。之后也变得可处理Fortran、Pascal、Objective-C、Java、Ada,以及Go与其他语言。

相关文章

  • ANSI C, Standard C与GCC

    我们常在书本、网页中看到ANSI C的字眼,它到底指什么意思呢? ANSI C严格来说,应当是指美国国家标准学会(...

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

    版权声明:本文为作者原创文章,转载时请注明文章来源,否则视为侵权,并按法律程序处理! 做C语言开发的人,经常会遇到...

  • 字符集与编码

    字符集与编码 ANSI编码 ANSI(American National Standard Institute),...

  • 冷知识

    ANSI C是由美国国家标准协会(ANSI)及国际标准化组织(ISO)推出的关于C语言的标准。ANSI C 主要标...

  • iOS预编译指令详解

    1.预处理的概念 ANSI C标准(ANSI C是美国国家标准协会(ANSI)对C语言发布的标准)规定可以在C源程...

  • gdb调试

    1. gcc a.c b.c c.c -o app==>gcc a.c b.c c.c -o app -g -g:...

  • (boolean)Week5

    C++标准库(C++ Standard Library --architecure & sources)与泛型编程...

  • redis

    GCC Linux 安装gcc、gcc-c++编译器 yum -y install gcc gcc-c++ GNU...

  • 2018-09-30制作动态库和静态库

    c文件 main.c 动态库: 1. gcc -fPIC -c main.c 2.gcc -shared -...

  • Linux环境源码安装Nginx

    1、安装gcc和gcc-c++ yum方式安装:yum install -y gcc gcc-c++ Nginx是...

网友评论

本文标题:ANSI C, Standard C与GCC

本文链接:https://www.haomeiwen.com/subject/eilatttx.html