→ CaptainH:這是前處理的最後結果(也就是真正拿去compile的東西) 10/02 16:29
→ CaptainH:所有的marco都展開了 10/02 16:30
謝謝你,另外我想再問一個問題,我後來又下了這個指令:
> 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)
推 purpose:那幾乎都是些宣告而已,所以你就該知道,宣告是沒意義的 10/02 16:49
→ purpose:CPU 執行程式根本不需要他們,有些語言甚至不需要原型宣告 10/02 16:50
→ kdjf:沒有用到的define/include全都被丟掉了啊 10/02 16:53
→ CaptainH:不是吧, 是因為還沒link起來 10/02 16:59
→ CaptainH:你的程式編出來就是這樣而已呀~ 10/02 17:00
→ kdjf:如果你想看更精采的,就接下去compile, link 看會出現什麼吧 10/02 17:00
→ CaptainH:你用 gcc hello.c -o h1 和 gcc hello.c -o h2 -static 10/02 17:01
→ CaptainH:h2的大小會是h1的近百倍.. 10/02 17:02
→ tonytonyjan:加上 -v 之後看到 gcc 預設下 ld -Bdynamic 10/02 17:13
推 saxontai:問題一:那些是Line Control,告訴編譯器該行底下的內容 10/02 17:36
→ saxontai:是源自哪個檔案的哪一行。編譯錯誤訊息告訴你的檔案跟行 10/02 17:37
→ saxontai:號也跟Line Control有關。詳細請 Google "Line Control" 10/02 17:37
→ saxontai:問題二:不是單純複製貼上,遇到macro還會再展開。 10/02 17:38
→ tonytonyjan:這篇真是學習了很多,謝謝前輩們指點! 10/02 17:51
推 cobrasgo:原po請看程式設計師的自我修養 10/02 21:04