編譯器編譯過程的理解

來源:互聯網
上載者:User

標籤:檔案   ef   安裝   c   對象   軟體   函數   數組   

編譯過程大體包括預先處理,編譯,彙編,連結四大步,其中預先處理主要是宏定義替換,檔案包含,條件編譯。用#ifndef機構可以防止以下情況:即一個檔案A包含了一個標頭檔C,同時另一個檔案B也包含了標頭檔C,而且檔案A包含了標頭檔B,若用#ifndef結構可以避免在編譯的時候報錯,但是若標頭檔裡有定義(包括函數,數組,變數)那麼在連結的時候會因為多個object包含同一對象而報錯,此錯誤是連結時的錯誤非編譯錯誤,所以必須注意的是,在標頭檔裡面只能聲明,不能定義。另外注意的是include後角括弧和雙引號的區別,角括弧則告訴編譯器先從軟體安裝時已經包含的庫中找標頭檔,雙引號則告訴編譯器先從制定目錄下尋找標頭檔。編譯是將預先處理的結果轉化為組合語言,而彙編的結果是翻譯成機器碼,連結是將各部分功能實現合成一個可執行檔,這裡就牽涉到庫的概念。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.