看板 LinuxDev 關於我們 聯絡資訊
呵,這個-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
littlex:有種豁然開朗的感覺^^ 11/04 18:02
noonOut:推 11/04 18:45