C++ -std 编译标准-CSDN博客
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
概述
任何一门编程语言都有相关的组织和团体在不停的维护和更新。原因很简单时代在发展编程语言如果停滞不前最终就会被淘汰。
以 C
语言为例发展至今该编程语言已经迭代了诸多个版本例如
C89
偶尔又称为C90、
C94
C89
的修订版、
C99
、
C11
、
C17
以及当下正在开发的
C2X
新标准。甚至于在这些标准的基础上GCC 编译器本身还对 C
语言的语法进行了扩展先后产生了 GNU90、
GNU99
、
GNU11
以及
GNU17
这
4
个版本。 以 C
语言为例发展至今该编程语言已经迭代了诸多个版本例如
C89
偶尔又称为 C90、
C94
C89
的修订版、
C99
、
C11
、
C17
以及当下正在开发的
C2X
新标准。甚至于在这些标准的基础上GCC 编译器本身还对 C
语言的语法进行了扩展先后产生了 GNU90、
GNU99
、
GNU11
以及
GNU17
这
4
个版本。
读者可能会问这么多标准GCC
编译器使用的到底是哪一套呢不同版本的
GCC
编译器默认使用的标准版本也不尽相同。以当前最新的 GCC 10.1.0
版本为例默认情况下GCC 编译器会以
GNU11
标准
C11
标准的扩展版编译
C
语言程序以
GNU++14
标准C++14
标准的扩展版编译
C++
程序。
那么我们可以手动控制 GCC
编译器使用哪个编译标准吗答案是肯定的对于编译C、
C++
程序来说借助
-std
选项即可手动控制
GCC
编译程序时所使用的编译标准。也就是说当使用 gcc
指令编译
C
语言程序时我们可以借助
-std
选项指定要使用的编译标准同样当使用 g++
指令编译
C++
程序时也可以借助
-std
选项指定要使用的编译标准。
-std
选项的使用方式很简单其基本格式如下
gcc/g++ -std=编译标准
注意不同版本的 GCC
编译器所支持使用的
C/C++
编译标准也是不同的。下表罗列了常 用的 GCC
版本对
C
语言编译标准的支持程度。
下表罗列了常用的
GCC
版本对
C++
程序编译标准的支持程度。
举个例子下面是一段 C++代码里面使用到了 C++11 标准的 auto 自动推导如果你的编译器没有默认指定以 C++11 标准去编译的会可能就会报错所以这时我们要手动指定编译标准。
int main(int argc, char const *argv[])
{
auto a = 10;
cout << sizeof a << endl;
return 0;
}