【发布时间】:2019-11-20 13:08:01
【问题描述】:
我的Lib.h 中有一个带有内联函数的库项目:
static inline void DoStuff(void) __attribute__ ((always_inline));
static inline void DoStuff(void)
{
#if(SYMBOL == 1)
// Stuff
#elif(SYMBOL == 2)
// Other stuff
#endif
}
我将我的库编译成libLib.a 并设置SYMBOL=2。现在我在其他项目中使用这个库和标题Lib.h。本项目设置SYMBOL=1,并在本项目中调用DoStuff()。 #if 指令的哪一部分被执行?我假设编译器将使用#if(SYMBOL == 1) 运行该部分,但我不确定。编译器是怎么处理的?
【问题讨论】:
-
library into libLib.a and set SYMBOL=2- 你是怎么做到的?你如何“设置”“SYMBOL=2”?显示代码。