C++内联函数

来源:互联网 发布:节奏大师挂软件 编辑:程序博客网 时间:2024/06/07 21:58
使用内联函数时应注意以下几个问题:
  (1) 在一个文件中定义的内联函数不能在另一个文件中使用。它们通常放在头文件中共享。
  (2) 内联函数应该简洁,只有几个语句,如果语句较多,不适合于定义为内联函数。 
  (3) 内联函数体中,不能有循环语句、if语句或switch语句,否则,函数定义时即使有inline关键字,编译器也会把该函数作为非内联函数处理。

  (4) 内联函数要在函数被调用之前声明。例如下面的代码将内联函数放在函数调用之后声明,不能起到预期的效果。

   另外关于C++内联函数还有两个更令人头疼的问题。

    第一个问题是该如何进行维护。一个函数开始的时候可能以内联的形式出现,但是随着系统的扩展,函数体可能要求添加额外的功能,结果内联函数就变得不太可能,因此需要把inline specifier去除以及把函数体放到一个单独的源文件中。

    另一个问题是当内联函数被应用在代码库的时候产生。当内联函数改变的时候,用户必须重新编译他们的代码以反映这种改变。然而对于一个非内联函数,用户仅仅需要重新链接就可以了。