我知道我的计算机上有Java 1.7和Python 2.7。如何查看我的C和C ++版本?另外,我如何检查我正在使用的C / C ++编译器?我正在运行OS X.
此外,不同版本的C / C ++与不同版本的编译器之间的C / C ++有什么关系?每个编译器是否对应不同版本的C / C ++?例如,gcc4-3,比如说只编译C ++ 2014吗?
答案 0 :(得分:6)
如果您需要C ++标准版本,那么您应该使用' __ cplusplus'宏here。
如果您指的是编译器版本和编译器类型,请检查this以查找由不同编译器定义的所有宏。
O,顺便说一下,编译器通常是向后兼容的。因此,可以编译C ++ 11代码的编译器也可以编译C ++ 98。
答案 1 :(得分:4)
如何查看我的C和C ++版本?
C ++编译器应定义预处理器的const __cplusplus
,您可以std::cout<<__cplusplus<<'\n'
查看正在运行的标准编译器。
如何查看我正在使用的C / C ++编译器?
检入您的IDE。
C / C ++的不同版本与C / C ++的不同版本编译器之间的关系是什么?
较新的编译器可能适用于最新的标准。
每个编译器是否对应不同版本的C / C ++?
MS Office是否仅打开最新版本的文件?的不。强>
答案 2 :(得分:1)
要获取gcc的版本,您可以在终端中运行:
gcc -v
对于g ++,您可以运行:g++ -v
编译器可以编译不同版本的C / C ++。所以gcc4-3可以编译不同版本的C ++。
编译器的版本独立于语言版本。新版本的gcc包含新功能和错误修正。
答案 3 :(得分:0)
每个编译器是否对应不同版本的C / C ++?
没有。编译器版本与其支持的语言版本之间没有相关性。
大多数当前的编译器应该支持从K&amp; RC到C2011的所有内容,至少就语法而言(某些头文件可能丢失,而gets
库函数已经消失了在C2011标准中,因此非常旧的代码在根据最新标准编译时可能会中断。某些编译器(例如gcc
)允许您指定要构建的语言版本(C89 / C90为-ansi
,C99为-std=c99
,C2011为-c11
,至少从gcc 4.9.1)开始。
Visual Studio中Microsoft的C编译器中的一个值得注意的例外;直到最近非常,它最多只支持C90。我的理解是,他们终于开始支持至少一些的C99 / C2011更改(例如混合声明和代码)。
就C而言,如果支持至少C90,预定义宏__STDC__
将扩展为1
,__STDC_VERSION__
将扩展为long
如果支持C99或C2011,则为yyyymmL
形式的常量(例如,如果编译器最多支持C99,则__STDC_VERSION__
会扩展为199901L
。