对于GCC编译器,有如下选项:
-D macro=string,等价于在头文件中定义:#define macro string。例如:-D TRUE=true,等价于:#define TRUE true
-D macro,等价于在头文件中定义:#define macro 1,实际上也达到了定义:#define macro的目的。
举例说明:/* hello.c */
#include <stdio.h>
#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;
}
# gcc -DYES -o helloyes hello.c
# ./helloyes
Yes, this is a macro.
# gcc -o hellono hello.c
# ./hellono
No, there is no macro.另外-U选项是取消宏定义。
在Makefile文件里面,可以通过宏定义来控制源程序的编译。只要在Makefile中的CFLAGS中通过选项-D来指定定义的宏即可。
如:
CFLAGS += -DYES=1
本文详细介绍了GCC编译器中宏定义的使用方法,包括-Dmacro=string和-Dmacro选项的具体含义,并通过示例代码展示了如何在程序中使用这些宏定义。此外还介绍了如何通过Makefile中的CFLAGS选项来控制源程序的编译。

被折叠的 条评论
为什么被折叠?



