gpt4 book ai didi

C++ 外部定义内联函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:04:58 25 4
gpt4 key购买 nike

我试图在 CPP 文件中定义一个在头文件中向前声明的函数。我想知道正确的方法,因为我尝试过的所有内容都可以编译和运行,而且我的分析技能还不够好,无法调查函数是否真正内联。

这是我想做的

/// Source.h
void inlined_func(); // what specifiers should I put here?
// I was thinking about doing both `extern` and `__forceinline`



/// Source.cpp
__forceinline void inlined_func()
{
std::cout << "we're in the inlined func" << std::endl;
}

最佳答案

声明为 __forceinline 的函数默认获得内部链接(名称只能在当前翻译单元中引用),就好像声明为 static 一样。如果您尝试在另一个翻译单元中使用它,您将收到链接器错误 LNK2001 unresolved external symbol ...。要强制外部链接,以便它可以在其他翻译单元中引用,请使用 extern 关键字。

foo.h

void foo();

foo.cpp

#include <foo.h>
extern __forceinline void foo() {
/*...*/
}

main.cpp

#include <foo.h>
int main() {
foo();
}

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

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