其他分享
首页 > 其他分享> > x210-2021-08-22

x210-2021-08-22

作者:互联网

1、预处理的标志:#

2、在预处理阶段,宏替换是不会进行语法检查的,语法检查在编译的过程进行。

3、宏值为了避免语义和优先级的干扰,都知道加小括号进行限定,但是像“#define FUN(x) (1+x)”这样的宏函数除了要外加整体括号还应该对宏参数也加上小括号,即“#define FUN(x) (1+(x))”

4、预定义宏:

__FUNCTION__:函数名

__LINE__:行号

__FILE__:文件名

使用以上三个预定义宏,使用printf()来打印,可以得到该语句所在函数、文件以及行号信息,用于帮助调试的进行。5、在条件编译启用的过程中,如果选择每一次调试都进入源文件写上(或解除屏蔽)#define DEBUG宏,特别是在插入多段条件编译协助调试时,这样的操作就显得不太简便了,为此,在gcc编译命令中加入“-D宏名”来选择开启条件编译,如下图二。6、宏展开:

6.1、单#:字符串化,注意在下面的掉用处,printf函数中并没有使用双引号,这也是可行的。6.2、##:连接符化,实质上就是提取公因式,如果宏名前缀很长时使用可以简化语句,以达到突出重点内容的效果,在下面的示例中,如果需要打印buffersize2,这时就可以修改printf中宏SIZE(x)所传入的参数,能省去再次打宏名buffersize2这么长的一段内容了。7、编译过程提示找不到目录,可以在-o之前加上"-I 指定的dir"。

标签:__,函数,x210,08,小括号,编译,2021,printf,define
来源: https://www.cnblogs.com/weizhunie/p/15174257.html