作者qrtt1 (愚人)
看板LinuxDev
標題Re: [心得] gcc入門 -E option
時間Sat Nov 4 10:59:57 2006
呵,這個-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