gpt4 book ai didi

c++ - 内联函数/变量的外部链接

转载 作者:行者123 更新时间:2023-11-28 04:04:51 26 4
gpt4 key购买 nike

我知道 static 关键字对函数意味着什么。但我无法理解 inline 关键字对功能的意义。我知道内联函数是一个函数调用时在行中展开。但是内联它对编译器的报价,他可以忽略它。也许编译器可以优化一些函数并使其内联。

1) 如果编译器比我更清楚什么时候需要内联函数,什么时候不需要,那么为什么我需要声明内联函数?

2) 而且我知道内联函数具有“外部链接”或类似的东西。这是什么意思?

3) 声明一些内联静态函数是否有意义?

最佳答案

需要 inline 关键字来防止违反 ODR (一个定义规则)。它与该函数是否实际上被编译器内联无关,它只是告诉编译器每个翻译单元都需要一个定义。

关于“外部链接”,这允许 inline 函数中的 static 变量在所有翻译单元之间共享(如您所料)。如果 inline 函数具有“内部链接”,那么函数的每个拷贝(在每个翻译单元中)将以它自己的静态变量实例结束,这没有多大意义。

关于c++ - 内联函数/变量的外部链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58917015/

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