This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F2800157: inline函数的编译

Part Number: TMS320F2800157

如下定义了一个GetBoardWorkingFlag()函数,它是inline类型的

然后在某个地方调用这个函数

因为它是inline函数,所以这个函数编译之后应该不存在,在调用的地方会被展开(类似于宏定义的效果),

而且我看可编译之后的.map文件,也确实找不到这个函数

但是在调用这个函数的地方,汇编指令会是LCR(函数跳转指令)

static inline bool GetBoardWorkingFlag()
{
    return (boardStatus_WorkingNormal == boardStatus);
}

bool boardWorkingFlag = GetBoardWorkingFlag();
0094b3: 7640919E LCR GetBoardWorkingFlag        ---- GetBoardWorkingFlag()是inline类型的,在调用的地方应该是被展开,没有调用,为什么这里还是有函数跳转指令
0094b5: 9645 MOV *-SP[5], AL