Re: [心得] gcc入門 -E option

看板LinuxDev作者 (愚人)時間17年前 (2006/11/04 10:55), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
呵,這個-E option在debug時常用來檢查展開後的preprocessor 舉一個c 的新手極可能寫出來的例子 :D ============================================================== code qrtt1@ubuntu:~/test/c$ cat marco.c #include<stdio.h> #define square(x) x*x int main () { printf ("%d\n", square (3)); printf ("%d\n", square (3 - 1)); } ============================================================== code | 你會發現執行結果不總是對的,像(3-1)就不能work了。 你可以用-E展開你的define (當然連#include都展開了,請忽略他) ============================================================== code int main () { printf ("%d\n", 3*3); printf ("%d\n", 3 - 1*3 - 1); } ============================================================== code | 這到這個code展開的結果,你會明白少了括弧的情況 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.59.94.161

11/04 18:02, , 1F
有種豁然開朗的感覺^^
11/04 18:02, 1F

11/04 18:45, , 2F
11/04 18:45, 2F
文章代碼(AID): #15J04KaS (LinuxDev)
文章代碼(AID): #15J04KaS (LinuxDev)