如何更好的實現(xiàn)C++編譯
在前面小節(jié)中已經(jīng)提到,C++只是一個ISO標準,標準中規(guī)定了C++的基本語法以及這些語法對應的語義(可以簡單理解為語法的含義)。要將C++真正地應用在實際的程序設計中,只有一個標準是不夠的。
好在已經(jīng)有很多商業(yè)公司、開源組織、基金會甚至是個人,遵照C++標準在不同的平臺上進行了實現(xiàn)。這里的遵照并不是***地遵照C++標準,主要原因有以下幾點:
(1)歷史原因。某些編譯器在實現(xiàn)的時候,C++正式標準還沒有出來,或者是按照較老的標準實現(xiàn)的(C++標準也是在更新的)。
(2)平臺原因。某些平臺上實現(xiàn)標準中的某些特性比較困難,或者根本不需要這些特性。
(3)出于商業(yè)目的。某些商業(yè)公司實現(xiàn)的時候可能會添加一些其認為可行的或者更加好的特性。
(4)其他技術原因。
無論如何,現(xiàn)在可用的C++編譯器實現(xiàn)已經(jīng)很豐富了,在Windows平臺上的實現(xiàn)就有若干種,比較常用的有Visual C++ 6.0附帶的C++編譯器實現(xiàn),和Borland C++ Builder附帶的C++編譯器實現(xiàn)。就對標準的執(zhí)行程度來看,后者要好一些。#t#
提示:Visual C++和Borland C++ Builder是Windows操作系統(tǒng)上常見的C++開發(fā)工具。前者是微軟公司出品的,應用廣泛。本書的主要內(nèi)容就是講述如何使用Visual C++ 6.0進行常見的Windows程序設計。Visual C++ 6.0除了包含了一個C++編譯器之外,還包含了其他的一些可視化開發(fā)工具、輔助工具,以及一些C++庫等,這些都將在本書的相關章節(jié)進行介紹。
1.3.2 Visual C++ 6.0的開發(fā)過程
Visual C++ 6.0編譯器負責將C++源代碼編譯成匯編文件,轉換為中間文件(obj文件),然后使用連接器將相關的中間文件連接在一起,生成可執(zhí)行的二進制文件。其過程如下:
(1)源程序經(jīng)過預處理后交給編譯器。
(2)如果代碼無誤,編譯器將代碼生成匯編程序,再生成若干個目標程序(obj文件)。
(3)鏈接器負責將目標程序進行連接,生成可執(zhí)行的程序。
但是這并不意味著C++即將消亡(這樣的言論很多)。不可否認的是C++在C#、Java的進攻下,丟失了一些領域,但是C++仍然在普遍使用,很重要的原因就是因為C++既保持了C語言級別的效率(某些情況下例外),又加入了面向?qū)ο蟮奶匦浴?/P>