本章继续介绍gcc词法分析,将重点介绍其中的宏定义与展开。
按照惯例,我们首先从源码中找到宏相关的内容,包括宏的关键字,以及c语义内置的宏。
我们在init.c文件中,找到gcc中内置的几种宏定义,来看下面的截图:
这些内置宏,具体的功能,我们这里就不去过多的介绍,感兴趣的可以去专门的网站上查询。
下一步,我们找到定义宏的关键字,在文件directives.c中,路径参照上一章截图:
第三步,是预处理过程中,宏的具体动作实现,也在directives.c,这里截取一部分:
相关的动作,被装入了一个叫dtable的指针函数数组里面: