相关疑难解决方法(0)

内联的目的是什么?

我与Johannes Schaub就关键字进行了讨论.那里的代码是这样的:inline

namespace ... {
    static void someFunction() {
        MYCLASS::GetInstance()->someFunction();
    }
};
Run Code Online (Sandbox Code Playgroud)

他说:

将其作为内联函数可以在可执行文件中保存代码大小

但根据我在这里这里的发现,不需要,因为:

  • [内联]仅在编译器的成本/收益分析显示为有利可图时才会出现
  • 主流C++编译器(如Microsoft Visual C++和GCC)支持一个选项,允许编译器自动内联任何合适的函数,甚至那些未标记为内联函数的函数.

然而,约翰内斯表示明确指定它还有其他好处.不幸的是我不理解他们.例如,他说,"内联"允许您在程序中多次定义函数.,我很难理解(并找到参考).

所以

  1. 是否inline只是编译器的建议?
  2. 当你有一个小功能时我是否应该明确说明(我猜1-4指令?)
  3. 写作有什么其他好处inline
  4. 是否需要声明inline以减少可执行文件的大小,即使编译器(根据维基百科[我知道,错误的引用])应该自己找到这样的函数?

还有什么我想念的吗?

c++ compiler-construction inline

15
推荐指数
2
解决办法
1663
查看次数

标签 统计

c++ ×1

compiler-construction ×1

inline ×1