C++ Builder是最快的C++編譯器之一,從編譯速度來說也可以說是最快的win32C++編譯器了。除了速度之外,C++builder的性能也在其它C++編譯器的之上,但許多delphi程序員仍受不了C++builder工程的編譯速度。的確,delphi的速度要比任和c++的編譯器都要快好多。Delphi在編譯一個小工程的時候可能不到一秒,大的工程一般也在5秒鐘這內編譯完成了。
為什麼delphi會比c++builder快這麼多?是否有方法來c++builder的編譯速度?本文就講解了為什麼C++的編譯器速度會慢,並且介紹了一個簡單的方法來減少c++builder的編譯時間。
為什麼c++編譯器的速度會慢?
c++builder 使用者怎麼通過預編譯頭文件來減少編譯時間?
講解基於VCL可視化工程的預編譯頭文件方法
優化c++builder對預編譯頭文件的使用
結論
注意事項
為什麼c++編譯器速度慢?
在C++中,你只能使用預定義或是預先聲明了的函數,這意味什麼?來看一個簡單的例子,函數A()調用函數B(),函數A()只能在函數B()的原型或是函數體在A()之前才能調用它。下面的例子說明了這一點:
// declaration or prototype for B
void B();
void A()
{
B();
}
// definition, or function body of B
void B()
{
cout << "hello";
}
沒有B()的原型,這個代碼不會編譯通過的,除非函數B()的函數體移到函數A()之前。
對於編譯器來說,函數的原型很重要。當你運行程序時,編譯器都要插入恰當的代碼來調用程序。編譯器必需知道要有多少個參數傳給函數。也要知道函數的參數應該在棧裡還是在寄存器裡。總而言這,編譯器必需知道怎麼來產生正確的代碼來調用這個函數,這就要求編譯器必需知道預先聲明或定義了的被調用的函數。