C++ C/C的不同版本++

C++ C/C的不同版本++,c++,c,compiler-construction,C++,C,Compiler Construction,我知道我的计算机上有Java 1.7和Python 2.7。如何检查C和C++的版本?另外,如何检查我使用的是什么C/C++编译器?我在运行OSX 另外,不同版本的C/C++和不同版本的C/C++编译器之间的关系是什么?每个编译器是否对应于不同版本的C/C++?例如,gcc4-3是否只编译C++2014 要获取gcc版本,您可以在终端中运行: gcc -v 对于g++,您可以运行:g++-v 编译器可以编译不同版本的C/C++。所以GCC-4-3可以编译不同版本的C++。p> 编译器的版本独立

我知道我的计算机上有Java 1.7和Python 2.7。如何检查C和C++的版本?另外,如何检查我使用的是什么C/C++编译器?我在运行OSX


另外,不同版本的C/C++和不同版本的C/C++编译器之间的关系是什么?每个编译器是否对应于不同版本的C/C++?例如,gcc4-3是否只编译C++2014

要获取gcc版本,您可以在终端中运行:

gcc -v
对于g++,您可以运行:g++-v

编译器可以编译不同版本的C/C++。所以GCC-4-3可以编译不同版本的C++。p>
编译器的版本独立于语言的版本。GCC的新版本包含新的特性和错误。

< P>如果您需要C++标准版本,那么您应该使用'y-CPLUS PLUS宏'/P> 如果您指的是编译器版本和编译器类型,那么请检查由不同编译器定义的所有宏

O、 顺便说一句,编译器通常是向后兼容的。因此,可以编译C++11代码的编译器也可以编译C++98

如何检查C和C++的版本?< /P> C++编译器应该定义预处理器的常量cplusplus,您可以执行std::cout 每个编译器是否对应于不同版本的C/C++

否。编译器版本与其支持的语言版本之间没有相关性

大多数当前的编译器都应该支持从K&R C到C2011的所有内容,至少就语法而言,有些头可能会丢失,而gets库函数在C2011标准中已经消失,因此在根据最新标准编译时,非常旧的代码可能会中断。某些编译器(如gcc)允许您指定要根据-ansi(适用于C89/C90)和-std=c99(适用于c99)以及-c11(适用于C2011)构建的语言版本,至少从gcc 4.9.1开始是这样

微软在VisualStudio中的C编译器有一个明显的例外;直到最近,它只支持C90。我的理解是,它们终于开始支持至少一些C99/C2011更改,例如混合声明和代码


就C而言,如果至少支持C90,预定义宏uuu STDC uuu将扩展为1;如果支持C99或C2011,预定义宏uu STDC u VERSION uu将扩展为yyyymmL形式的长常量(例如,如果编译器最多支持C99),则u STDC u VERSION uu将扩展为199901L

您有不同版本的编译器。编译器可以接受C++的各种版本,例如,同一个G+ + -STD= C++ 03或-STD= C++ 11…您应该关心ABI兼容性。Java编译并在模拟器中运行,因此您将获得编译器和模拟器版本。Python是一种解释语言,因此您将获得解释器的版本。你要找的是你的Mac版本。每一个问题后C99的1个问题有:Y.SydCdValuxOn.My宏。我认为有些C++版本是可以预料的,我不确定它是否是与语言兼容的编译器。事实上,编译器通常不向后二进制兼容,但它们通常可以编译使用旧标准编写的代码。但是你完全正确,标准本身是向后兼容的。