[問題] Source file after preprocessing
環境:
windows 7
mingw
問題:
知道編譯前會有個前處理,會把標頭一一展開,
但沒有真的去看過,於是動手寫了一個簡單的程式驗證:
#include <stdio.h>
int main(int argc, char* args[]){
printf("Hello, world!");
return 0;
}
然後執行如下指令:
> gcc -E hello.c -o hello.i
內容顯示為:
http://paste.ideaslabs.com/show/1sU5l73z8G
問題一:
這個檔案出現了一堆 # 開頭且沒見過的用法,不曉得加一個空格再補個數字是什麼意思
問題二:
為什麼和原來的 stdio.h 差別這麼大?展開標頭不是只是複製貼上的動作嗎?
stdio.h 內容:
http://paste.ideaslabs.com/show/s5kObfjsk
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.5.35
→
10/02 16:29, , 1F
10/02 16:29, 1F
→
10/02 16:30, , 2F
10/02 16:30, 2F
謝謝你,另外我想再問一個問題,我後來又下了這個指令:
> gcc -S hello.i -o hello.s
為什麼四百多行的 hello.i 編譯成組語後變得不到 30 行呢?
http://paste.ideaslabs.com/show/7drRYhsvoW
※ 編輯: tonytonyjan 來自: 140.113.5.35 (10/02 16:47)
推
10/02 16:49, , 3F
10/02 16:49, 3F
→
10/02 16:50, , 4F
10/02 16:50, 4F
→
10/02 16:53, , 5F
10/02 16:53, 5F
→
10/02 16:59, , 6F
10/02 16:59, 6F
→
10/02 17:00, , 7F
10/02 17:00, 7F
→
10/02 17:00, , 8F
10/02 17:00, 8F
→
10/02 17:01, , 9F
10/02 17:01, 9F
→
10/02 17:02, , 10F
10/02 17:02, 10F
→
10/02 17:13, , 11F
10/02 17:13, 11F
推
10/02 17:36, , 12F
10/02 17:36, 12F
→
10/02 17:37, , 13F
10/02 17:37, 13F
→
10/02 17:37, , 14F
10/02 17:37, 14F
→
10/02 17:38, , 15F
10/02 17:38, 15F
→
10/02 17:43, , 16F
10/02 17:43, 16F
→
10/02 17:51, , 17F
10/02 17:51, 17F
推
10/02 21:04, , 18F
10/02 21:04, 18F