c++ --程式編譯

來源:互聯網
上載者:User

標籤:windows   條件   原則   條件編譯   注釋   包含   計算   標頭檔   bsp   

程式編譯

程式的編譯流程大體可分為編輯、預先處理、編譯和連結4個步驟。

1. 編輯

  編輯程式:將源檔案輸入電腦進行修改和儲存的過程就稱為“編輯”。

2. 預先處理

  前置處理器是在真正的編譯開始之前由編譯器調用的獨立程式。前置處理器可以刪除注釋、包含檔案以及執行宏替代。

  前置處理器在編譯器之前根據指令更改程式文本。編譯器看到的是前置處理器修改過的代碼文本。

  "#include "、"#define "等都屬於編譯預先處理。預先處理行尾不加分號。原則上預先處理行可以寫在程式的任意位置,但推薦寫在檔案頭部。常用的預先處理指令如下所示:

  1) 標頭檔包含,#include <iostream>

  2) 宏,#define PI 3.14

  3) 條件編譯,#ifndef  _FUNC_H_     #define  _FUNC_H_    #endif

  4) 其他,如#pragma

3. 編譯

  編譯用於將每個編譯單元翻譯成二進位代碼檔案。在DOS和Windows環境下,二進位代碼檔案的尾碼名為 .obj;在UNIX環境下,其尾碼名為 .o 。

  編譯器處理的對象其實是由單個 .cpp檔案和其中遞迴包含的標頭檔組成的編譯單元。當以個 .cpp檔案在編譯時間,前置處理器首先遞迴包含標頭檔,形成一個含有所有必要資訊的單個源檔案,這個源檔案就是一個編譯單元。這個編譯單元會被翻譯稱為一個與 .cpp檔案同名的目標檔案(.o或是.obj)。

  每個 .cpp檔案對應一個編譯單元,而每個編譯單元都會產生一個二進位代碼檔案。所以,每個 .cpp檔案對應著一個二進位代碼檔案。

4. 連結

  連結程式的作用是將編譯得到的零散的二進位代碼檔案組合成二進位可執行檔(.exe)。它有兩方面的意義:

  1) 對編譯單元中的函數、變數進行解析;

  2) 建立與庫函數的連結

  連結是為程式中的變數的函數分配絕對位址,使二進位檔案可執行檔過程。

  

 

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.