Re: [心得] gcc入門 -E option
呵,這個-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
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章