2014-03-13 210 views

回答

3

是的,它被編譯爲C++文件,除非在源文件中有「.C」擴展

除了少數例外,C語法也是合法的C++的語法,所以C源代碼會被經常成功編譯一個C++編譯器。

+1

使用/ TP選項(在較快的打字員Bathsheba握着拳頭......):) – Jiminion

6

不,它被編譯爲C代碼。

Visual Studio中的C++項目可以包含C++和C代碼。 cl編譯器識別文件擴展名並相應地編譯它。

以.c結尾的文件將被編譯爲C代碼。以.cpp或.cxx結尾的文件被編譯爲C++。這可以根據記錄進行更改here

3

C不是C++,但是這兩種語言的設計方式保持了兼容性。

有一個特定的公用子集允許編寫可以包含在C和C++編譯單元中的.h文件;這取決於語言標準。

更重要的是,雖然標準沒有規定它們,但他們默默地認爲在給定的機器上這兩種語言將共享所謂的ABI-應用程序二進制接口。這允許從一種語言到另一種語言進行呼叫。

與C#,Java或VB.Net等需要將項目的所有文件編譯爲批處理的語言不同,C和C++基於各個編譯單元的想法。因此,可以將不同類型的文件(C,C++,Asm)包含到單個項目中。

然而,人們可以在另一個角度來看待它。我有一個C#項目,其中一些C#源代碼由T4生成。我可以將其視爲一個項目,其中生成的程序集是由C#文件構成的,但C#文件本身可能通過一些準備步驟(如T4轉換)獲得。

以相同的方式,就可以把一個C++項目爲其中所得到的組件從對象文件所做的一個項目,但對象文件可以通過一些準備步驟,如C或C的彙編獲得++編譯單位。並且介意,你也可以將準備好的目標文件包含到你的項目中(通常是批量調用庫)。

0

不,它不是編譯爲C++,因爲visual studio同時支持c和C++ .. 如果你編譯c程序,它被編譯爲c只...如果你想編譯一個單一的程序你只需添加c和C++的頭文件。 (例如#include #include ,如果你同時使用兩個頭文件,你可以同時編譯這兩個程序,也可以在C++中使用printf scanf,並且你可以在c編程中使用cin和cout ..謝謝!

相關問題