如果让你用C语言写个宏定义,我相信大部分同学顺手就能写出define。
这也是C语言中最常见的宏定义写法,这样的代码在预处理的时候直接被替换。
在C语言中,还有两种宏定义容易被忽略。
一种是预定义宏,顾名思义,就是别人预先定义好的,拿过来用就行。
常见的比如file line date time 分别表示文件名、行号、日期和时间,主要就是让用户用起来更方便。
还有一种定义宏的方式,是在编译的时候,以 gcc 为例。
#includeint main() { printf("%d ", A); return 0; }
我们在代码中输出 A,如果代码直接拿过来编译,肯定会报错,A 既不是变量也不是常量,属于未定义。
但是如果在编译的时候,加上 -D 选项,后面跟上 A,可以给他赋值,也可以不赋值,那编译就能顺利通过,A默认的值是 1。
gcc test.c -o test -D A
这个用法的使用场景很多,比如跨平台,比如加一些调试选项,如果定义了 DEBUG,就输出下面的调试信息,编译的时候,通过 -D 选项,就能控制调试信息是否输出,可以避免项目发
布的时候,再去一行一行删除调试信息。
全部0条评论
快来发表一下你的评论吧 !