C++

七块蛋糕發表於2024-05-16

編譯和預編譯的區別是什麼?

  • 預編譯
    又稱為預處理,是做些程式碼文字的替換工作,處理#開頭的指令,比如複製#include包含的檔案程式碼,#define宏定義替換,條件編譯等
  • 編譯
    把高階語言變成計算機可以識別的二進位制檔案
  • ifndef #define

防止同一個標頭檔案被多次編譯,因為多個C&C++檔案k可能包含同一個h檔案

  • 庫檔案
    1. 目標檔案:本機編譯成的二進位制程式碼, .o
    2. 庫:一組已編譯的目標檔案集合,他們被組合在一起以便在程式中重複使用。
      1. 靜態庫:在連結時被複製併合併到可執行檔案中,因此可執行性檔案可以獨立執行,*.a
      2. 動態庫:在執行時被動態載入到記憶體中,並且可被多個程式共享。 *.so