代码之家  ›  专栏  ›  技术社区  ›  Frank

将函数定义直接放在头文件中以便编译器可以内联?

  •  2
  • Frank  · 技术社区  · 14 年前

    我倾向于将较小函数的主体放在头文件中 foo.h ,不在单独的实现文件中 foo.cc

    例子:

    // File "foo.h":
    struct Foo { 
      // ...   
      int GetCount() const { return count_; }
    };
    

    现在任何使用 Foo 看到整体 GetCount 实现并可以决定内联它。

    这是好的做法吗?如果是,您是否也将稍大的函数定义放入头文件中?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Janick Bernet    14 年前

    现代编译器 link time optimization ,因此不再需要在头中提供用于内联函数的代码。因此,我认为最好将声明标记为内联,但将定义放在cpp中。

        2
  •  0
  •   tenfour    14 年前