gpt4 book ai didi

c++ - "inline function need to be DEFINED in all tranlation units"背后的基本原理是什么?

转载 作者:行者123 更新时间:2023-11-28 00:54:55 24 4
gpt4 key购买 nike

我在 Stroustrup 的书中读到这一行:“一个 i n l i n e 函数(§7.1.1、§10.2.9)必须在使用它的每个翻译单元中通过相同的定义(§9.2.3)进行定义。”

“需要在所有翻译单元中定义内联函数”背后的基本原理是什么?我理解错了吗?我知道除了一个(包含定义)之外的所有翻译单元中的其他函数声明都可以。

最佳答案

从历史上看,C++ 语言编译器是基于独立翻译的原则构建的。每个翻译单元都是完全独立编译的(只有链接器才能看到整个程序)。

在这些情况下,为了执行内联,编译器必须能够在调用函数的每个翻译单元中查看函数的源代码。为此,必须在每个翻译单元中定义(即用正文声明)。

关于c++ - "inline function need to be DEFINED in all tranlation units"背后的基本原理是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12032567/

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