部落格104 檢視預處理後的程式

2021-09-29 21:38:13 字數 852 閱讀 9912

內容:檢視預處理後的程式,最近實習的時候導師閒時問我有沒有看過預處理是做了啥呀?想起來這個順便記一下吧哈哈.

準備好我們的程式:

#include

#define print printf("\n start main\n");

const

int b =5;

intmain

(void

)//this is the main function !

printf

("%d"

, a +5)

;printf

("%d"

, b +5)

; c = a;

c = b;

return0;

}

檢視預處理結果:

1.編譯時不要一步到位

gcc -e test1.c -o test1.i

2.檢視結果

vim test1.i

進來後會看到密密麻麻的一堆**,因為stdio.**件被展開了,此時如果你去翻要很久才能翻到底部看到你的**被預處理的結果,所以使用命令g直接到尾部即可

尾部:

可以看到這個是我們的預處理結果:

1.注釋被刪除了

2.新增了行號

3.巨集定義被替換

4.常量在gcc預處理預設情況下並沒有直接進行常量替換

c 的預處理程式指令

c 中的預處理功能主要是指可以在c 源程式中包含各種編譯指令,用這些編譯命令在 編譯前執行,所以這些命令被稱為預處理命令,實現c 的預處理功能。預處理指令是編譯系統的控制命令,編譯系統根據其要求先對 進行優化,然後在進行編譯,使程式變得簡練清晰。常見的預處理命令有 檔案包含命令 條件編譯命令和巨集定...

程式的編譯及預處理

編譯預處理是指c語言對源程式在正常編譯之後先執行源程式中的預處理命令。預處理後源程式在被正常編譯,從而得到目標 預處理是編譯的一部分,是編譯中最先執行的部分。預處理 在c語言中帶 的行都是預處理命令,後面不加 結束符。多數編譯的預處理都放在程式頭,也可以根據需要放在的任何位置。巨集定義 在c語言中允...

程式的環境和預處理

原始檔 編譯器 目標檔案 鏈結器 鏈結庫 可執行程式 編譯器需要進行預處理,編譯,彙編。而聯結器需要將目標檔案和c庫檔案進行鏈結 形成可執行程式。預處理需要進行標頭檔案展開,去注釋,巨集替換,條件編譯,編譯是 將c變成彙編 彙編是將彙編 變成二進位制目標檔案。1.預處理 選項 gcc e test....