gpt4 book ai didi

c - 包含内联函数的 header ,我可以将代码移到头文件之外并仍然内联所有内容吗?

转载 作者:太空狗 更新时间:2023-10-29 15:07:32 25 4
gpt4 key购买 nike

我已经结束了将许多小的内联函数放入我包含在许多编译单元中的头文件中,代码被编译器正确内联,程序运行起来非常棒。

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

#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 ..
}

然后,当我需要这些函数时,我只需包含头文件。

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

最佳答案

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

关于c - 包含内联函数的 header ,我可以将代码移到头文件之外并仍然内联所有内容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9858791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com