首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >术语*ANSI C*指定它是否与GNU89、C89、GNU99、C99一起使用?

术语*ANSI C*指定它是否与GNU89、C89、GNU99、C99一起使用?
EN

Stack Overflow用户
提问于 2011-03-15 15:05:22
回答 4查看 3.2K关注 0票数 4

在Xcode IDE中,我可以选择将C语言方言设置为

C

  • GNU89

  • C89

  • GNU99

  • C99

  • Compiler
  • ANSI默认

我理解他们的意思,除了ANSI C,因为我知道,ANSI C只是C89或C99的一种。但这上面应该有个原因。“ANSI C”一词在里面具体指的是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-15 15:40:09

假设您是,实际上,使用GCC作为编译器,ANSI和C89是同一件事的别名。请参见:

http://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html#C-Dialect-Options

我不知道为什么苹果公司会决定把这两款产品都展示出来。GCC没有什么实际的区别。也许他们是多疑,以防-ansi的含义在GCC的后期版本中改变(也许是C99)。

票数 0
EN

Stack Overflow用户

发布于 2011-03-15 15:36:52

编辑信用转到@Nicholas 发布XCode的C方言选择窗口:http://dl.dropbox.com/u/14571816/xcodelang.png的截图

ANSI C在历史上是指ANSI C89标准(实际上与C90相同)。XCode使用GCC的一个版本作为编译C代码的编译器后端,所以我认为这就是它们获得这些“选项”的地方,因为您可以指定-ansi标志或各种std=标志来选择C编译器后端用于编译代码的模式。

因此,如果您将它传递给-ansi,并使用C编译器,则它等同于-std=c90,这也相当于-std=c89-std=iso9899:1990

-ansi

在C模式下,这等同于-std=c90。在C++模式下,它与-std=c++98等价。

如果使用-std标志,则可以传递某些值来激活不同的语言特性。

-std=

确定语言标准。目前只有在编译C或C++时才支持此选项。

这些论点相当于:

c90

c89

iso9899:1990支持所有C90程序(某些与C90冲突的GNU扩展被禁用)。C代码与-ansi相同。

这些论点相当于:

修改后的

iso9899:199409 ISO C90。

以下这些论点是等价的:

c99

c9x

iso9899:1999

iso9899:199x

ISO C99.请注意,尚未完全支持此标准;有关更多信息,请参见http://gcc.gnu.org/gcc-4.5/c99status.html。不推荐使用c9x和The 9899:199x的名称。

以下这些论点是等价的:

gnu90

gnu89

C90的GNU方言(包括一些C99特性)。这是C代码的默认设置。

以下这些论点是等价的:

gnu99

gnu9x

ISO C99的GNU方言。当ISO C99在GCC中全面实施时,这将成为默认情况。不推荐使用gnu9x这个名称.

票数 6
EN

Stack Overflow用户

发布于 2011-03-15 15:28:39

C是70年代出生的。

1978年,Brian和Dennis出版了“”一书。这本书(第一版)中所描述的语言现在被称为"K&R C“。

1988年左右,出版了第二版。第二版非常非常类似于ANSI (ISO)标准,也是人们在提到( :)时通常谈论的版本。

编译器编写人员开始对该语言进行更改,为了使其标准化,ANSI于1989年发布了一个标准( C89标准或ANSI )。随后不久,国际标准化组织(C90)对ANSI进行了几乎没有任何改变。

1999年,国际标准化组织发布了另一个C标准:我们称之为C99。

所以,如果我是对的,ANSI C只有几个月的时间,但是ANSI C和C90之间的差别很小。事实上,今天的许多编译器都是带有附加的ANSI C的编译器(而不是使用附加的ISO C99,但没有几样东西)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5313684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档