今天看见一段有意思的代码,
#undef XXX
#define XXX(A)\
A##fun1();\
A##fun2();\
#undef XXX
一个配置文件module.cfg
里面的内容为
#ifndef __XXX__
#define __XXX__
#ifdef XXX
XXX(PMR)
XXX(KEY)
XXX(TOUCH)
#endif
加到代码里面的之后编译成.i文件后为
PMRfun1();PMRfun2();
KEYfun1();KEYfun2();
TOUCHfun1();TOUCHfun2();
查看 关于#undef 这个意思是取消之前的定义.看最后编译的结果,像是XXX(A),替换了cfg里面的东西,直接变成了多行,这里还没整明白,