在阅读一些开源代码的时候,经常会看到一个宏定义动辄上百行,而且宏定义还层层嵌套,这对我们理解源代码的难度有点大。昨天一个同学问我有没有好的办法,想了一下这个问题,觉得有点思路,拿出来和大家分享一下。
我们知道gcc在编译的过程中,依次进行:预处理,编译,汇编,链接。在每个过程中gcc会调用对应的工具,例如对于预处理,gcc会调用cpp,即c语言预处理器。具体的选项为-E。
而宏定义的展开就是在预处理的过程中处理的,所以思路就是:将调用宏的那部分代码单独提取出来,使用:
gcc -E file_name.c
就可以将宏展开,这样看起来就不是很费劲了。
转载于:https://blog.51cto.com/hipercomer/810528