C
和C++
是不同的語言,我仍然可以在Visual Studio 2010中在C++項目下編譯它們。這是爲什麼?編譯器是否將C
文件解釋爲C++
?在Visual Studio 2010中編譯`C`文件時,它是否編譯爲C++文件?
回答
是的,它被編譯爲C++文件,除非在源文件中有「.C」擴展
除了少數例外,C語法也是合法的C++的語法,所以C源代碼會被經常成功編譯一個C++編譯器。
使用/ TP選項(在較快的打字員Bathsheba握着拳頭......):) – Jiminion
不,它被編譯爲C代碼。
Visual Studio中的C++項目可以包含C++和C代碼。 cl編譯器識別文件擴展名並相應地編譯它。
以.c結尾的文件將被編譯爲C代碼。以.cpp或.cxx結尾的文件被編譯爲C++。這可以根據記錄進行更改here
C不是C++,但是這兩種語言的設計方式保持了兼容性。
有一個特定的公用子集允許編寫可以包含在C和C++編譯單元中的.h文件;這取決於語言標準。
更重要的是,雖然標準沒有規定它們,但他們默默地認爲在給定的機器上這兩種語言將共享所謂的ABI-應用程序二進制接口。這允許從一種語言到另一種語言進行呼叫。
與C#,Java或VB.Net等需要將項目的所有文件編譯爲批處理的語言不同,C和C++基於各個編譯單元的想法。因此,可以將不同類型的文件(C,C++,Asm)包含到單個項目中。
然而,人們可以在另一個角度來看待它。我有一個C#項目,其中一些C#源代碼由T4生成。我可以將其視爲一個項目,其中生成的程序集是由C#文件構成的,但C#文件本身可能通過一些準備步驟(如T4轉換)獲得。
以相同的方式,就可以把一個C++項目爲其中所得到的組件從對象文件所做的一個項目,但對象文件可以通過一些準備步驟,如C或C的彙編獲得++編譯單位。並且介意,你也可以將準備好的目標文件包含到你的項目中(通常是批量調用庫)。
不,它不是編譯爲C++,因爲visual studio同時支持c和C++ .. 如果你編譯c程序,它被編譯爲c只...如果你想編譯一個單一的程序你只需添加c和C++的頭文件。 (例如#include #include ,如果你同時使用兩個頭文件,你可以同時編譯這兩個程序,也可以在C++中使用printf scanf,並且你可以在c編程中使用cin和cout ..謝謝!
- 1. Visual Studio 2010將.cpp文件編譯爲.c文件
- 2. 編譯C文件在Matlab與Visual Studio
- 3. 在Visual Studio 2010中編譯C不會創建.EXE文件
- 4. 如何在visual studio 2010中編譯C?
- 5. visual studio 2010 c#winform運行時編譯
- 6. 如何編譯Visual Studio 2010中的Pro * C文件
- 7. 如何在Visual Studio C++ 2010中將不同的擴展文件編譯爲C++?
- 8. Visual Studio 2012將.c文件編譯爲cpp文件
- 9. Visual Studio似乎將頭文件編譯爲.c文件
- 10. Visual Studio編譯文件
- 11. 編譯* .lib文件visual studio
- 12. 用C++編譯器編譯C99文件
- 13. C++編譯文件
- 14. 編譯C文件
- 15. 編譯C++從源C++文件在Windows在Visual Studio
- 16. visual studio 2010 c#簡單編譯幫助
- 17. Visual Studio 2010的C++編譯器
- 18. Visual Studio 2010的C#單行編譯
- 19. 試圖在Visual Studio 2010中編譯Tessnet2(Visual Studio 2008 C++)項目
- 20. visual studio編譯時插件
- 21. 如何在visual studio中編譯C++文件?
- 22. Visual C#編譯後缺少app.config文件
- 23. 將C++ Win32項目編譯爲Visual Studio 2008下的.exe文件
- 24. 編譯C++在Visual Studio在彙編
- 25. 問題編譯使用Visual C#中的.sln文件2010速成
- 26. 在Visual Studio(C#)編譯時設置值?
- 27. C#編譯Visual Studio程序
- 28. C#編譯沒有visual studio
- 29. 即使在指定ProjectDir(Visual Studio 2012)後編譯包含文件的pro * C文件時發生編譯錯誤
- 30. 將C++(.cpp)編譯爲.exe文件
對於那個 – paulm