gpt4 book ai didi

c++ - 我应该使用静态还是内联?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:11:20 27 4
gpt4 key购买 nike

我正在编写一个仅包含 header 的库,我无法决定是将我提供给用户的函数声明为static 还是inline。在那种情况下,有什么理由让我更喜欢其中之一吗?

最佳答案

它们都提供不同的功能。

使用 inline 关键字(§ 7.1.3/4)有两个含义:

  1. 提示编译器在调用点替换函数体优于通常的函数调用机制。
  2. 即使省略内联替换,也遵循内联的其他规则(尤其是 w.r.t One Definition Rule)。

函数上的 static 关键字强制 inline 函数具有内部链接(inline 函数具有外部链接)这样的每个实例函数被视为一个单独的函数(每个函数的地址不同)并且这些函数的每个实例都有自己的静态局部变量和字符串文字拷贝(内联函数只有一个这些的拷贝)

关于c++ - 我应该使用静态还是内联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13466095/

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