vc6,vc.net,vc7,vc8,vc9,c,c++,c#的區別與聯絡

來源:互聯網
上載者:User

1.vc.net開發的程式,.net程式需要架構支援,沒有安裝架構的電腦不能運行;
2.vc6.0開發的程式比.net的快;
3.VC6/VC2003/VC2005/VC2008都支援MFC;
4.基於.net的程式功能強大、介面美觀,而且還可以跨平台(在WINCE等作業系統上運行)。
5.vc.net代表使用了.net的VC,而VC7或VC8也可以不使用.net;VC7或VC8開發的程式,假如使用了.net(例如CLR程式),則需要架構的支援,否則(例如MFC程式)可以獨立運行。
6.vc.net整合了很多常用的程式,使編程工作簡化,據說平均可以減少70%的工作量;vc.net把多種程式設計語言聯絡在一起,為混合編程提供了方便;
7.VC.net的C 部分,就是比VC 6支援的標準一些。MFC部分,當然比VC6的要新,支援一些新特性;
8.vc.net以後的vc有兩種代碼,一種託管C 代碼,就是會編譯為.net的中間代碼,需要.net架構支援的。還有就是傳統的Unmanaged 程式碼,也就是直接編譯為執行程式,和6.0編譯出來程式的一樣,不過有很多更新。
9.vc.net就是移植性好一點(也僅限各種windows);
10.vc.net安裝需記憶體多,vc.NET在MFC上跟VC6.0 差別不是很大 它增加了一些庫,它沒有了 ClassWizard 。
vc6與vc8(vc2005)的區別與聯絡
1.VC++2005包含了VC++6.0,只有函數庫有一點更改,還有一些檔案結構改了.但是VC++2005不僅包含了傳統的VC++, 還包含VC++.NET,可以寫託管的C++應用,也就是.NET應用程式。

c、c++、c#的區別

要說區別,首先就得說聯絡,我不記得在哪兒看過這麼一句話:C是爺爺,C++是爸爸, C#是c的外孫。這形象說明了三者的關係。
從時間先後上說,他們之間最早出現的是C,然後是c++,最後是c#。c++是為瞭解決軟體危機而引入物件導向,c#為了實現平台統一和java爭奪市場下的產物。
從效能上說, c的效率最高,c++次之,c#最低。C是面向過程的結構化程式設計語言,他的特點是語言體積小,效率高, 語言靈活,給程式的限制小,而且可以方便的對低層進行操作,所以它非常適合於開發作業系統,驅動程式,嵌入式等對速度要求較高的程式。 C++使向下完全相容C的, C++與C相比最顯著的變化就是增加了物件導向的成分,也就是增加了類的概念,因為它的增加使軟體開發可以比較容易的描述人類的思維,使得軟體的開發和維護變得相對簡單,直接降低了軟體的成本, 但因為C++是物件導向的語言,這本身就制約他的速度,所以C++適合開發那些大型項目,現代的大部分語言都或多或少的借鑒了C++和C的某些特性. C#被包括在.net平台下,是一個物件導向面向網路面向組件的語言, 有很多地方與java非常相似,擅長於開發網路方面的程式. 因此,更確切的說,c#是一個需.net平台支援的開發語言,單純看c#沒有意義,需要瞭解.net平台的開發知識。
從編譯角度看,C/C++編譯產生目標檔案都是可被CPU直接理解的機器碼, 而C#編譯後產生的是MSIL(Microsoft Intermediate Language)這種語言不能直接被CPU執行,而是依靠.net framework翻譯(Just-in-time compiling)成opcode後再送到CPU執行的。因此,這也是上面為什麼說c#運行效率最低的緣故。

 

C++和C#的文法和功能區別

下表包含 C++ 和 C# 功能之間的重要比較。如果您是一位 C++ 程式員,此表將為您提供這兩種語言的最重要差異。
注意   C++ 和 C# 項目派生於不同的項目模型。有關 C++ 和 C# 項目之間差異的資訊,請參見項目中的項管理和使用方案總管。
功能 參考主題 
繼承:類只能繼承一個基類中的實現。另外,類或介面可以實現多個介面。
數組:聲明 C# 數組和聲明 C++ 數組的文法不同。在 C# 中,“[]”標記出現在數群組類型的後面。 
bool 類型:bool 類型和其他類型(特別是 int)之間沒有轉換。
long 類型:在 C# 中,long 資料類型為 64 位元,而在 C++ 中為 32 位。 
struct 類型:在 C# 中,類和結構在語義上不同。struct 是實值型別,而 class 是參考型別。
switch 語句:與 C++ 中的 switch 語句不同,C# 不支援從一個 case 標籤貫穿到另一個 case 標籤。
delegate 類型:委託與 C++ 中的函數指標基本相似,但前者具有型別安全,是安全的。
從衍生類別調用重寫基類成員。
使用 new 修飾符顯式隱藏繼承成員。
聲明重寫方法需要有 override 關鍵字。
前置處理器指令用於條件編譯。C# 中不使用標頭檔。 
異常處理:使用 finally 語句。
C# 運算子:C# 支援其他運算子,如 is 和 typeof。它還引入了某些邏輯運算子的不同功能。
關鍵字 extern 的使用。
關鍵字 static 的使用。 
在構造基類上替代 C++ 初始化列表的方法。
C# 程式的常規結構:命名空間、類、結構、委託和枚舉。
Main 方法和 C++ 中的 main 函數的聲明方式不同。
方法參數:C# 支援 ref 和 out 參數,這兩個參數取代指標通過引用傳遞參數。
在 C# 中只在不安全模式下才使用指標。 unsafe 
在 C# 中以不同的方式執行重載運算子。 
字串:C# 字串不同於 C++ 字串。 string 
foreach 關鍵字使您得以逐一查看數組和集合。 foreach, in 
C# 中沒有全域方法和全域變數:方法和變數必須包含在型別宣告(如 class 或 struct)中。 
C# 中沒有標頭檔和 #include 指令:using 指令用於引用其他未完全限定類型名的命名空間中的類型。 
C# 中的局部變數在初始化前不能使用。 
解構函式:在 C# 中,不能控制解構函式的調用時間,原因是解構函式由記憶體回收行程自動調用。
建構函式:與 C++ 類似,如果在 C# 中沒有提供類建構函式,則為您自動產生預設建構函式。該預設建構函式將所有欄位初始化為它們的預設值。 
C# 不支援位域。 C++ 位域 
C# 的輸入/輸出服務和格式設定依賴於 .NET Framework 的執行階段程式庫。
在 C# 中,方法參數不能有預設值。如果要獲得同樣的效果,請使用方法重載。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.