====================================================================================
gcc:
gcc -E hello.c ==cpp hello.c
上述命令马上将预处理结果显示出来,不利于观看,可采用-c将预处理结果保存:
gcc -E -c hello.i hello.c ==cpp -o hello.i hello.c
注意,-c指定名称要给出".i"后缀.
除了直接在源代码中用 #define NAME来定义宏外,gcc可在命令行中定义宏:-DNAME(其中NAME为宏名), 也可对宏赋值: -DNAME=value
注意等号两边不能有空格! 由于宏扩展只是一个替换过程,也可以将value换成表达式,但要在两边加上双引号: -DNAME="statement"
e.g. $ gcc -Wall -DVALUE="2+2" tmp.c -o tmp
如果不显示地赋值,如上例子,只给出:-DVALUE,gcc将使用默认值:1.
====================================================================================
gcc:
gcc -E hello.c ==cpp hello.c
上述命令马上将预处理结果显示出来,不利于观看,可采用-c将预处理结果保存:
gcc -E -c hello.i hello.c ==cpp -o hello.i hello.c
注意,-c指定名称要给出".i"后缀.
除了直接在源代码中用 #define NAME来定义宏外,gcc可在命令行中定义宏:-DNAME(其中NAME为宏名), 也可对宏赋值: -DNAME=value
注意等号两边不能有空格! 由于宏扩展只是一个替换过程,也可以将value换成表达式,但要在两边加上双引号: -DNAME="statement"
e.g. $ gcc -Wall -DVALUE="2+2" tmp.c -o tmp
如果不显示地赋值,如上例子,只给出:-DVALUE,gcc将使用默认值:1.
====================================================================================