我static inline
在 H 文件中定义了一个函数,在 C 文件中的某个位置,我为该函数分配了一个指针,如下所示:
富.h:
static inline void frobnicate(void) {
// frobs something.
}
foo.c
#include "foo.h"
void execute(void (*func)(void) ) {
func();
}
void blahBlahBlah(void) {
execute(frobnicate);
}
酒吧.c
#include "foo.h"
// ...
frobnicate();
所以我认为这里会发生的是编译器将内联对frobnicate
来自 bar.c 的调用,但在 foo.c 中,它实际上必须创建一个函数来实现frobnicate
,以便它可以有一个指向它的工作指针。
谁能确认我的理解是否准确,否则纠正我?