C语言编译器支持的标准通常包括ANSI C、ISO C和C99等。具体来说,常见的C语言编译器支持的标准包括: ANSI C(即C89):由美国国家标准协会(ANSI)于1989年制定的C语言标准。 ISO C:国际标准化组织(ISO)基于ANSI C的标准,包含了一些额外的特性。 C99:ISO于1999年发布的C语言标准,增加了一些新的特性,如变长数组...
3. 各类编译器对标准的支持情况 目前最符合和接近C++标准的编译器有为 GNU GCC 4.5.0 和 Visual Studio 2010 等 VC++ 6.0 对标准支持的不是很好,这一部分详见我的其他博文。 void main(){}是MicroSoft 公司的用法,不符合C++规范。
1995 年C程序设计语言工作组对C语言进行了一些修改,增加了新的关键字,编写了新的库,取消了原有的限制,并于 1999 年形成新的标准——ISO/IEC 9899:1999 标准,通常被成为 C99。 但是这个时候的C语言编译器基本已经成熟,各个组织对 C99 的支持所表现出来的兴趣不同。当 GCC 和其它一些商业编译器支持 C99 的大...
默认情况下,当 MSVC 将代码编译为 C 时,它将使用特定于 Microsoft 的语言扩展实现 ANSI C89。 在 ISO C99 及更高版本中对某些 MSVC 扩展进行了标准化。 可以使用/Za编译器选项禁用大多数 MSVC C 扩展,如本文后面的详述。 可以使用/std编译器选项启用对 ISO C11 和 C17 的支持。 有关详细信息,请参阅/std...
查看当前编译器支持的C/C++标准 gcc -E -dM - </dev/null | grep "STDC_VERSION" 或者 printf("%ld\n",__STDC_VERSION__); printf("%ld\n",__cplusplus); 对应关系如下 如果没查到,则默认是c89的标准; 如果是#define __STDC_VERSION__ 199901L,则默认支持的是c99标准;...
标准是一回事儿,编译器支不支持是另外一回事儿。不同的编译器对C语言标准支持不一样。有的编译器只支持 ANSI C 标准,这是目前默认的C语言标准。有的编译器可以支持C99,或者支持C99 标准的部分特性。 对于C11 和 C17 ,大多数编译器可能暂时还不支持。目前对于C99标准支持最好的就是GNU C 编译器了,据说可以支...
如图1所示,GCC,MSVC,CLANG是目前最主流的C/C++编译器,编译器是一组程序(这里包含链接等程序),它们的主要作用是将C/C++源代码翻译成可以执行的机器字节码(可执行程序)。因此,编译器的开发者们一般会完成C/C++标准中新增语言本身部分的开发支持,同时还会完成标准库之一的一个实现。
1.ANSI C标准 ANSI C标准被几乎所有广泛使用的编译器所支持,多数C语言代码是在ANSI C基础上写的。记得,大学那会上的《C语言程序设计》课程中讲到的也是这个标准的C语言。ANSI C是美国国家标准协会(ANSI)对C语言发布的标准,使用C的软件开发者被鼓励遵循ANSI C文档的要求。ANSI C经历了以下的历史过程:(1).C语...
MSVC宣布支持C11和C17标准 日前微软VS团队宣布,将在Visual Studio 2019版本16.8预览版3开始,正式支持C11和C17为MSVC编译器。 日前微软VS团队宣布,将在Visual Studio 2019版本16.8预览版3开始,正式支持C11和C17为MSVC编译器。多年来,Visual Studio仅在C++要求的范围内支持C。随着两个新的编译器开关/std:c11和/std:...