【问题标题】:What is difference between ANSI C and C Programming Language? [closed]ANSI C 和 C 编程语言有什么区别? [关闭]
【发布时间】:2014-08-02 16:15:00
【问题描述】:

我是初学者,所以请告诉我 ANSI C 和 C 编程语言之间的区别。

【问题讨论】:

  • 如果你是初学者,这是你应该完全忽略的不重要的历史信息。它只会分散你的注意力。
  • 您可以阅读C89 rationale,它解释了为什么某些事情发生了变化(并由此告诉您什么发生了变化)。可能是最重要的变化:函数原型(如果您有兴趣,请查找旧式或 K&R 函数声明和定义)和预处理器(在不同的实现之间变化很大)。

标签: c


【解决方案1】:

ANSI 是美国标准机构,于 1989 年发布了第一个 C 标准规范。该标准于 1990 年被 ISO 采用,现在 ISO 是该语言的标准机构,而不是 ANSI。

ANSI C 仅指 C 编程语言的特定标准 - 即没有区别,它们指的是同一个东西。然而,C 有几个标准和事实上的标准:

  • K&R C - 由 Brian Kernhigan 和 Dennis Ritchie 于​​ 1978 年出版的第一版 The C Programming Language 定义。
  • ANSI C - 1989(也称为 C89)。由 K&R 第二版描述(但不再定义)。
  • ISO C 1990(C90 - 或多或少与 C89 相同,但在 ISO 文档中)。
  • ISO C 1999 (C99)
  • ISO C 2011 (C11)

【讨论】:

  • 虽然很多人认为 ANSI C 为 C89,但 C11 也已被 ANSI 批准,从技术上讲,ANSI C 实际上是 C11。
  • @ouah :这只会使术语 ANSI C 更加模棱两可,最好避免使用。此外,这并不完全正确。 C90 被 ANSI批准,C99 和 C11 被采用。 ISO C 标准委员会是一个国际机构——将其称为“美国”是相当狭隘的。 British Standards Institute 也采用了它,但没有人将其称为BSI C!在更实际的意义上,-ansi switch in GCC 强制执行 C90。
  • 请注意,由于编写了这些,因此有一个 ISO C17 和一个 C2x 正在开发中 - 我不会保留这个答案, - 你明白了。
猜你喜欢
  • 2021-03-24
  • 1970-01-01
  • 1970-01-01
  • 2013-06-16
  • 1970-01-01
  • 1970-01-01
  • 2015-04-30
  • 1970-01-01
  • 2017-07-31
相关资源
最近更新 更多