gcc編譯流程:
1、將c語言源程式預處理,生成.i檔案
2、將.i檔案編譯為組合語言,生成.s檔案
3、將組合語言檔案經過彙編,生成目標.o檔案
4、將各個模組的.o檔案鏈結起來生成乙個可執行程式檔案
c語言的儲存布局:
1、**段:cpu執行指令的部分
2、資料段和緩衝段:全域性變數和靜態變數
3、堆:進行動態記憶體分配
4、棧:自動變數及函式呼叫時所需要儲存的資訊都儲存在棧上
位運算:
異或(^): 相同則為0,不同為1
與(&): 兩個為1則為1,其他都為0
或(|): 有乙個為1則為1
&&:是邏輯與運算子,0代表false,其他數值代表true
||:是邏輯或運算子,有乙個真則為真
gcc編譯流程
可以利用gcc的引數來控制執行的過程,這樣就可以更深入的了解編譯c程式的過程。下面將通過對乙個程式的編譯來演示整個過程。includeint main 1 預處理 編譯器將c程式的標頭檔案編譯進來,還有巨集的替換,可以用gcc的引數 e來參看。命令 gcc e hello.c o hello.i 作...
gcc編譯流程
步驟命令 說明預處理 gcc e hello.c o hello.i 1.將所有 define刪除,並且展開所有的巨集定義 2.處理所有的條件預編譯指令,如 if ifdef undef ifndef endif elif 3.處理 include,將包含的檔案插入到此處,這是乙個遞迴的過程 4.刪...
GCC編譯流程
gcc使用的基本語法為 gcc option filename 這裡option是gcc使用時的一些選項,可以通過指定不同的選項實現不同的功能。這裡的filename是gcc要編譯的檔案,gcc會根據使用者指定的編譯選項以及所識別的檔案字尾名來對編譯檔案進行響應的處理。1,預處理階段 預處理功能分為...