2012-10-22 26 views
0

我看過std::string用於.c文件。 std是一個C++命名空間,命名空間是在C++中引入的。爲什麼?它不應該拋出一個錯誤?std :: .c文件中的字符串

+0

這是你的答案。標記爲重複。 http://stackoverflow.com/questions/1545080/correct-c-code-file-extension-cc-vs-cpp – ApplePie

+1

文件擴展名並不重要,我可以在* .MP3文件編寫代碼,如果我問它,我的編譯器會很高興地將它編譯爲C++。 – Praetorian

+3

@Praetorian:[但也許不是.png文件。](http://stackoverflow.com/questions/5508110/why-is-this-program-erroneously-rejected-by-three-c-compilers) –

回答

7

是的,如果編譯爲C代碼,會導致大量編譯器錯誤。如果它被編譯爲C++,那麼它會很好地編譯。例如,GCC具有-x選項來選擇要編譯的語言,因此如果需要-x c++,則可以將C++編譯爲.c。同樣,Microsoft Visual C++編譯器有選項/Tc/Tp分別選擇C和C++的源語言。

我建議你解決你的編譯系統,使其沒有通過-x c++/Tp標誌不與典型的C++源文件擴展名(.cc.cpp.cxxc++.C結尾的文件,但最後三個相當稀有)。

0

文件的擴展名僅作爲讀者的參考。只要您使用C++編譯器,編譯器就不會在意。