我可以在 C++ 的头文件中放置一个内联函数吗?

Can I put an inline function on a header file in c++?

我有一个非常小的函数,它不属于任何 class。我可以将它放在头文件中以使其内联吗?像这样的事情:

inline int add(int a, int b)
{
      return a+b;
}

请注意,它不是class的方法,而是c类型的函数。

你的问题的答案是肯定的。

已在C++ FAQ

中回答

如何告诉编译器使非成员函数内联?

当你声明一个内联函数时,它看起来就像一个普通函数:

void f(int i, char c);

但是当你定义一个内联函数时,你在函数的定义前加上关键字 inline,然后将定义放入头文件中:

inline
void f(int i, char c)
{
// ...
}

注意:必须将函数的定义({...} 之间的部分)放在头文件中,除非该函数仅在单个 .cpp 文件中使用。特别是,如果您将内联函数的定义放入 .cpp 文件中,然后从其他某个 .cpp 文件中调用它,您将从链接器收到“未解析的外部”错误。