fbpx
维基百科

ANSI C

ANSI CISO CStandard C是指美国国家标准协会(ANSI)和国际标准化组织(ISO)对C语言发布的标准。历史上,这个名字专门用于指代此标准的原始版本,也是支持最好的版本(称为C89或C90)。使用C的软件开发者被鼓励遵循标准的要求,因为它鼓励使用跨平台的代码。

ANSI C和ISO C的历史

C的第一个标准是由ANSI发布的。虽然这份文档后来被国际标准化组织(ISO)采纳并且ISO发布的修订版亦被ANSI采纳,但名称ANSI C(而不是ISO C)仍被广泛使用。[1]一些软件开发者使用名称ISO C,还有一些使用中立的名称Standard C

C89

1983年,美国国家标准协会组成了一个委员会,X3J11,为了创立C的一套标准。经过漫长而艰苦的过程,该标准于1989年完成,并在作为ANSI X3.159-1989 "Programming Language C"正式生效。这个版本的语言经常被称作"ANSI C",或有时称为"C89"(为了区别C99)。

C90

在1990年,ANSI C标准(带有一些小改动)被国际标准化组织采纳为ISO/IEC 9899:1990[2],这个版本有时候称为C90。因此,C89C90通常指同一种语言。

C99

在2000年三月,ANSI采纳了ISO/IEC 9899:1999标准。这个标准通常指C99。

C11

在2011年12月,ANSI采纳了ISO/IEC 9899:2011标准。这个标准通常即C11。

C18

在2018年6月,ANSI采纳了ISO/IEC 9899:2018标准,这个标准通常即C18(有时被称为C17),它是C语言的现行标准。

主要编译器的支持

ANSI C现在被几乎所有广泛使用的编译器支持。现在多数C代码是在ANSI C基础上写的。任何仅仅使用标准C并且没有任何硬件依赖假设的代码实际上能保证在任何平台上用遵循C标准的编译器编译成功。如果没有这种预防措施,多数程序只能在一种特定的平台或特定的编译器上编译,例如,使用非标准库,例如图形用户界面库,或者有关编译器或平台特定的特性例如数据类型的确切大小和字节序.

选择编译

为了减轻K&R C和ANSI C标准,__STDC__("standard c")巨集可以被用来将代码分割为ANSI和K&R部分。

 #if __STDC__  extern int getopt(int, char * const *, const char *);  #else  extern int getopt();  #endif 

上面最好使用"#if __STDC__"而不是"#ifdef __STDC__",因为一些实现可能会把__STDC__设置为0来表示不遵循ANSI C。"__STDC__"能处理任何没有被巨集替换或者值为0的标示符。因而即使巨集"__STDC__"没有定义来表示不遵循ANSI C,"__STDC__"仍然能像显示的那样工作。

在上面的例子,一个原型中使用了ANSI实现兼容的函数声明,而另一个使用了过时的非原形声明。它们在C99和C90中依旧是ANSI兼容的,但并不被鼓励使用。

支持ANSI C的编译器

参考文献

  1. ^ Brad Kelechava. The Origin of ANSI C and ISO C. 2017-09-14 [2018-08-14]. (原始内容于2018-08-20). 
  2. ^ Standards - Using the GNU Compiler Collection (GCC). [2012-06-24]. (原始内容于2012-06-17). 

外部链接

  • ISO C working group(页面存档备份,存于互联网档案馆
  • (May 13, 1988), Third Public Review(页面存档备份,存于互联网档案馆
  • Draft ANSI C Rationale (ANSI X3J11/88-151)(页面存档备份,存于互联网档案馆)(Nov 18, 1988)
  • Schreiner, Axel-Tobias. Object oriented programming with ANSI-C. Hanser. 1994. ISBN 3-446-17426-5. 
  • . American National Standards Institute. [2010-06-29]. (原始内容存档于2011-07-25). 
  • (PDF). American National Standards Institute. 2005-12-02 [2010-06-29]. (原始内容 (PDF)存档于2016-03-04). 

ansi, standard, c是指美国国家标准协会, ansi, 和国际标准化组织, 对c语言发布的标准, 历史上, 这个名字专门用于指代此标准的原始版本, 也是支持最好的版本, 称为c89或c90, 使用c的软件开发者被鼓励遵循标准的要求, 因为它鼓励使用跨平台的代码, 目录, 和iso, c的历史, 主要编译器的支持, 选择编译, 支持的编译器, 参考文献, 外部链接和iso, c的历史, 编辑c的第一个标准是由ansi发布的, 虽然这份文档后来被国际标准化组织, 采纳并且iso发布的修订版亦被ansi采纳. ANSI C ISO C Standard C是指美国国家标准协会 ANSI 和国际标准化组织 ISO 对C语言发布的标准 历史上 这个名字专门用于指代此标准的原始版本 也是支持最好的版本 称为C89或C90 使用C的软件开发者被鼓励遵循标准的要求 因为它鼓励使用跨平台的代码 目录 1 ANSI C和ISO C的历史 1 1 C89 1 2 C90 1 3 C99 1 4 C11 1 5 C18 2 主要编译器的支持 2 1 选择编译 3 支持ANSI C的编译器 4 参考文献 5 外部链接ANSI C和ISO C的历史 编辑C的第一个标准是由ANSI发布的 虽然这份文档后来被国际标准化组织 ISO 采纳并且ISO发布的修订版亦被ANSI采纳 但名称ANSI C 而不是ISO C 仍被广泛使用 1 一些软件开发者使用名称ISO C 还有一些使用中立的名称Standard C C89 编辑 1983年 美国国家标准协会组成了一个委员会 X3J11 为了创立C的一套标准 经过漫长而艰苦的过程 该标准于1989年完成 并在作为ANSI X3 159 1989 Programming Language C 正式生效 这个版本的语言经常被称作 ANSI C 或有时称为 C89 为了区别C99 C90 编辑 在1990年 ANSI C标准 带有一些小改动 被国际标准化组织采纳为ISO IEC 9899 1990 2 这个版本有时候称为C90 因此 C89和C90通常指同一种语言 C99 编辑 主条目 C99 在2000年三月 ANSI采纳了ISO IEC 9899 1999标准 这个标准通常指C99 C11 编辑 主条目 C11 在2011年12月 ANSI采纳了ISO IEC 9899 2011标准 这个标准通常即C11 C18 编辑 主条目 C18 C语言标准 在2018年6月 ANSI采纳了ISO IEC 9899 2018标准 这个标准通常即C18 有时被称为C17 它是C语言的现行标准 主要编译器的支持 编辑ANSI C现在被几乎所有广泛使用的编译器支持 现在多数C代码是在ANSI C基础上写的 任何仅仅使用标准C并且没有任何硬件依赖假设的代码实际上能保证在任何平台上用遵循C标准的编译器编译成功 如果没有这种预防措施 多数程序只能在一种特定的平台或特定的编译器上编译 例如 使用非标准库 例如图形用户界面库 或者有关编译器或平台特定的特性例如数据类型的确切大小和字节序 选择编译 编辑 为了减轻K amp R C和ANSI C标准 STDC standard c 巨集可以被用来将代码分割为ANSI和K amp R部分 if STDC extern int getopt int char const const char else extern int getopt endif 上面最好使用 if STDC 而不是 ifdef STDC 因为一些实现可能会把 STDC 设置为0来表示不遵循ANSI C STDC 能处理任何没有被巨集替换或者值为0的标示符 因而即使巨集 STDC 没有定义来表示不遵循ANSI C STDC 仍然能像显示的那样工作 在上面的例子 一个原型中使用了ANSI实现兼容的函数声明 而另一个使用了过时的非原形声明 它们在C99和C90中依旧是ANSI兼容的 但并不被鼓励使用 支持ANSI C的编译器 编辑ARM RealView Clang LLVM GCC Intel C 编译器 LabWindows CVI LCC Open Watcom 编译器 Microsoft Visual C C89 90和部分C99 Tiny C Compiler C89 90和部分C99 Sun Studio参考文献 编辑 Brad Kelechava The Origin of ANSI C and ISO C 2017 09 14 2018 08 14 原始内容存档于2018 08 20 Standards Using the GNU Compiler Collection GCC 2012 06 24 原始内容存档于2012 06 17 外部链接 编辑ISO C working group 页面存档备份 存于互联网档案馆 Draft ANSI C Standard ANSI X3J11 88 090 May 13 1988 Third Public Review 页面存档备份 存于互联网档案馆 Draft ANSI C Rationale ANSI X3J11 88 151 页面存档备份 存于互联网档案馆 Nov 18 1988 Schreiner Axel Tobias Object oriented programming with ANSI C Hanser 1994 ISBN 3 446 17426 5 ISO IEC 9899 1999 Programming Languages C American National Standards Institute 2010 06 29 原始内容存档于2011 07 25 ANSI Standards Action Vol 36 48 PDF American National Standards Institute 2005 12 02 2010 06 29 原始内容 PDF 存档于2016 03 04 取自 https zh wikipedia org w index php title ANSI C amp oldid 73504049, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。