ANSI C和C编程语言有什么区别?

use*_*444 3 c

我是初学者,所以请让我知道ANSI C和C编程语言之间的区别.

Cli*_*ord 11

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

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

  • K&R C--由Brian Kernhigan和Dennis Ritchie在1978年出版的第一版C编程语言中定义.
  • ANSI C - 1989(也称为C89).由K&R 2nd Ed 描述(但不再定义).
  • ISO C 1990(C90 - 与C89或多或少相同,但在ISO文件中).
  • ISO C 1999(C99)
  • ISO C 2011(C11)

  • 虽然很多人都认为ANSI C是C89,但C11也被ANSI批准,技术上ANSI C实际上是C11. (3认同)
  • @ouah:这只会使术语*ANSI C*更加模糊,最好避免.除此之外并不完全正确; C90由ANSI批准*,C99和C11*被采用*.ISO C标准委员会是一个国际机构 - 将其称为"美国人"将是相当狭隘的.它也被[*英国标准协会*](http://tinyurl.com/plowzf3)采用,但没有人会将其称为*BSI C*!在更实际的意义上,GCC中的[`-ansi`开关](http://tinyurl.com/po2xt3n)强制执行C90. (2认同)