标准没有规定源文件的命名,所以把.c和.cpp看作哪一种语言是由编译器自己来实现的。gcc和g++都不是最终的编译器,它们都是编译驱动器,根据编译参数选择对应的编译器。
后缀为.c的源文件,gcc把它当作是c程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序。
g++会自动链接c++标准库stl,gcc不会,所以gcc编译c++代码用:gcc -lstdc++ test.cpp -o test。gcc不会定义__cplusplus宏,而g++会。
拓展阅读
标准没有规定源文件的命名,所以把.c和.cpp看作哪一种语言是由编译器自己来实现的。gcc和g++都不是最终的编译器,它们都是编译驱动器,根据编译参数选择对应的编译器。
后缀为.c的源文件,gcc把它当作是c程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序。
g++会自动链接c++标准库stl,gcc不会,所以gcc编译c++代码用:gcc -lstdc++ test.cpp -o test。gcc不会定义__cplusplus宏,而g++会。
拓展阅读