1、g++ -E 单独执行待编译阶段,eg :g++ -E src.cpp > out.cpp 可查看里面的out.cpp待编译内容。
2、nm -C 将低级符号名解码(demangle)成用户级名字, eg:nm -C out.o,可以更容易的查看里面的目标问题内容。
3、宏简单的替换,看如下代码:
#define test(a,b) a * b
int main()
{
int n = 10;
test(int , a) = &n; //int * a = &n;
return 0;
}
4、简单的log系统制作
int flag =1;
#define LOG (frm, args...)
do {
if( flag ==0) break;
printf("[%s : %s : %d] ", __FILE__, __func__, __LINE__) //左右双下划线
printf(frm, ##args); //##意思是参数列表可以为空,并且支持将前后内容粘贴到一起。
}while(0);
此过程可以通过1的g++ -E待编译执行过程进行查看。
5、编译过程中定义宏
g++ -DHONG out.cpp // D代表define HONG代表define 的宏。

本文介绍了C++的预处理指令,包括g++-E用于查看预处理后的源代码,nm-C用于解码目标文件中的符号。还探讨了宏定义的使用,如简单的宏替换,并展示了一个自定义日志系统的实现。最后提到了如何在编译过程中定义宏,如使用g++-D指定宏定义。

1万+

被折叠的 条评论
为什么被折叠?



