红联Linux门户
Linux帮助

gcc的-D和-U参数:宏的设置与取消

发布时间:2006-10-09 01:27:42来源:红联作者:Service
这两天做LFS注意到了gcc的-D参数:在gcc命令中定义宏,比如我有如下的代码:
[code]/* hello.c */
#include

#ifdef YES
char* str = "Yes, this is a macro.";
#else
char* str = "No, there is no macro.";
#endif

int main()
{
printf("%s\n", str);
return 0;
}[/code]
使用-D传入宏YES来进行编译:
[code]recordus@LFS test # gcc -DYES -o helloyes hello.c
recordus@LFS test # ./helloyes
Yes, this is a macro.[/code]

而不传入宏则是这样的:
[code]recordus@LFS test # gcc -o hellono hello.c
recordus@LFS test # ./hellono
No, there is no macro.[/code]

gcc还有与-D对应的另一个参数-U用于取消宏,比如:
[code]root@LFS test # gcc -DYES -UYES -o helloyesno hello.c
root@LFS test # ./helloyesno
No, there is no macro.[/code]

这大概是这两个参数最简单的应用了:)
文章评论

共有 0 条评论