5

我已经结束了将许多小的内联函数放入我包含在许多编译单元中的头文件中,编译器正确地内联了代码,并且程序像一个魅力一样工作。

但是现在头文件是非常不寻常的(作为头文件),为了使其更具可读性,我想这样做:

#ifndef MY_HEADER_H
#define MU_HEADER_H

static inline 
void my_fnct (my_param a);

#include "my_header.inline.c"

#endif

该文件my_header.inline.c将如下所示:

static inline 
void my_fnct (my_param a)
{
    // .. my code ..
}

然后,当我想要这些功能时,我只包含头文件。

我的问题是:有没有更好的方法来完成这个而不用太多代码填充头文件?或者我可以这样做并期望其他开发人员能够毫无问题地理解这段代码?

4

2 回答 2

1

你不能。但是,您可能会使用 GCC 的链接时间优化功能(然后可能会内联一些调用,即使该函数未声明inline并且在每个编译单元的标头中都不可用),例如编译和链接gcc -flto这需要最近的 GCC 编译器,例如至少 4.6 并减慢构建时间)。

于 2012-03-25T08:27:43.340 回答
1

我个人不喜欢的一种做法是将内联函数提取到扩展名为 .inl 的单独文件中。这只是约定,您可以为文件命名任何您喜欢的名称。我有一个折叠代码的 IDE,所以我可以隐藏我不想看到的东西,而不是拥有一个单独的文件。

于 2012-03-25T08:28:51.323 回答