请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F2800157 大家好、
GetBoardWorkingFlag()函数定义如下,这是一种内联类型。
然后在某个位置调用该函数。
由于这是一个内联函数、因此该函数在编译后不应存在、并会在调用该函数的位置进行扩展(与宏定义的效果类似)。
映射文件中确实没有这样的函数。
但在调用该函数的地方、汇编指令是 LCR (函数跳转指令)。
static inline bool GetBoardWorkingFlag()
{
return (boardStatus_WorkingNormal == boardStatus);
}
bool boardWorkingFlag = GetBoardWorkingFlag();
0094b3: 7640919E LCR GetBoardWorkingFlag --- GetBoardWorkingFlag()是内联类型,应在调用它的地方展开而不调用。 为什么这里仍有一条函数跳转指令?
0094b5:9645 MOV *-SP[5]、AL
--
谢谢、此致
