c c++宏定义使用编译器展开宏定义

最近研究VLC源码,对于其中模块加载对接部分很是困惑,跟踪代码的时候总会有断掉线索的嫌疑,因为其中就很多用函数指针+宏定义来实现的,对于其中的宏定义实现的函数定义,自行展开宏定义去分析很是麻烦,还不可靠,可以直接使用编译器可展开得到原代码,查看起来比较方便。

参考下这位朋友写的编译器的编译过程:(瞬间感觉掌握了一项黑科技,宏定义什么的统统????)

https://blog.****.net/gt1025814447/article/details/80442673

 

参考下另一个关于vlc中生成预编译文件的过程,目的是为了在原编译环境下生成预编译文件。

https://blog.****.net/c_m_deng/article/details/8220382

 

生成预编译文件的例子:

c c++宏定义使用编译器展开宏定义

使用命令:

#gcc -E macro_test.c -o macro_test.i

生成 macro_test.i文件(文件名随便)

查看,里面的宏定义已经被预编译给展开(你会发现这个文件很大,前面把 include也做预编译处理了)

c c++宏定义使用编译器展开宏定义