gcc和g++的区别

如题所述

误区一:gcc只能编译C代码,g++只能编译C++代码
两者都可以编译C和C++代码。当文件后缀为.c时,gcc将其视为C程序,而g++视为C++程序。当文件后缀为.cpp时,两者都会将其视为C++程序。尽管C++是C的超集,但两者对语法的要求有所不同,C++的语法规则更加严谨。
误区二:gcc不会定义__cplusplus宏,而g++会
实际上,这个宏只是标志着编译器将按照C还是C++语法来解释代码。如果后缀为.c,并且使用gcc编译器,则该宏是未定义的;否则,该宏是已定义的。
误区三:编译只能用gcc,链接只能用g++
严格来说,这句话并不正确。编译可以用gcc或g++,而链接可以用g++或gcc -lstdc++。由于gcc命令不能自动与C++程序使用的库连接,因此通常使用g++来完成连接。但在编译阶段,g++会自动调用gcc,二者是等价的。
误区四:extern "C"与gcc/g++有关系
实际上并无关系。无论是gcc还是g++,使用extern "C"时,都是以C的命名方式来为符号命名,否则,都以C++方式命名。
结论:extern "C"与采用gcc/g++并无关系,以上的试验还间接地印证了前面的说法:在编译阶段,g++是调用gcc的。
温馨提示:答案为网友推荐,仅供参考
相似回答