gpt4 book ai didi

C++:外部和内联函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:52:02 26 4
gpt4 key购买 nike

我有几个用 C 编写的文件,我希望它们与 C++ 兼容,所以我使用 C 头文件;

#ifdef __cplusplus
extern "C" {
#endif

当然是在文件的开头

#ifdef __cplusplus
}
#endif

...最后。但这似乎会给“内联”关键字带来问题。我的解决方案是简单地删除 C++ 的 inline 关键字,但我猜它可能会对 C++ 程序产生不良影响(这些函数被调用了无数次)。

有更好的解决方案吗?

最佳答案

如果我理解正确,我会这样做:


#ifdef __cplusplus
#define D_INLINE static
extern "C" {
#else
#define D_INLINE inline
#endif

并将 D_INLINE 用于我认为应该需要内联的函数。正如 delnan 所说,编译器无论如何都会对其进行优化,而 inline 关键字只是向编译器提示程序员认为编译器应该内联该函数。它不会强制编译器内联函数。

关于C++:外部和内联函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3325870/

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