我会尽力使问题清楚。我正在开发一个可加载的内核模块,只是想知道我是否可以调用Linux内核源代码的另一个头文件中定义的静态内联函数。 我知道static关键字使得函数受限于编译单元的范围(即C文件)。但是如果我包含定义静态内联函数的头文件,我可以在我的模块中使用它吗?
答案 0 :(得分:2)
我是否可以调用Linux内核源代码的另一个头文件中定义的静态内联函数?
是。可能。 kmalloc()就是一个例子。此函数在 include / linux / slab.h 中定义为static inline
函数。建议阅读this帖子,其中解释了为什么在头文件中使用静态内联。
参考
http://lxr.free-electrons.com/source/include/linux/slab.h#L452
What's the difference between "static" and "static inline" function?