我正在使用头文件中的函数实现进行简单的代码共享。最小示例:
foo.h:
#ifndef FOO_H
#define FOO_H
// potentially want to include extern/static/inline keyword for this function
int max(int x, int y) {
return x < y ? y : x;
}
#endif
bar.c:
#include <stdio.h>
#include "foo.h"
int main() {
printf("Max of 1 and 2: %d", max(1, 2));
}
我被建议在.h文件中实现的函数中使用inline
关键字,但这会导致链接错误。如果我使用extern inline
,它可以编译通过,但由于我只是猜测尝试,我不确定它是否以某种方式存在危险/有害。
在这里使用extern inline
合适吗?如果不是,应该使用哪些组合的static
、extern
和inline
?