我正在 Linux 中使用 gcc 进行 C 开发。
我按以下方式组织 .H 和 .C 文件中的小函数
// .H file
extern int my_function( int val );
// .C file
inline int my_function( int val ){
// my job..very short!
}
这些函数很小,因此非常适合内联,但我不知道它们是否一定会内联。
我对组织文件的方式有疑问,并且我认为将所有函数直接内联到 .h 文件中而不是 .C 文件中可能会更好。 你能帮我澄清一下我的疑问吗?
最佳答案
首先,请注意,您可以告诉 gcc 通过添加 -finline-functions
选项来尝试将小函数内联到其调用者中。
如果您对函数实际上会内联有任何疑问,您可以使用 -Winline
要求 gcc 警告您有关不可内联的函数
在这里,由于您的函数同时声明为 extern
和 inline
,因此它们将内联为 inline
定义仅用于内联。在这种特殊情况下,该函数根本不会自行编译。
关于c - 内联函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9946418/