作者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
1F:推 littlex:有种豁然开朗的感觉^^ 11/04 18:02
2F:推 noonOut:推 11/04 18:45