C ++内联函数

内联函数是在调用时在行内扩展的函数,即编译器将函数调用替换为相应的函数代码。

这是编译器使用的优化技术。只需在函数原型前添加inline关键字即可使函数内联。内联函数指示编译器在代码中使用该函数的位置插入该函数的完整主体。

*****请记住,内联(inline )关键字仅向编译器发送请求,而不向编译器发送命令,如果函数定义太长或太复杂,则编译器可能会忽略此请求,并将该函数编译为普通函数。

好处

  • 它避免了调用实际函数的开销。这是因为编译器执行并内联扩展,从而消除了调用函数时的时间开销。

  • 由于未编写存储器中的单独指令集,因此减少了空间。

  • 使用内联,您可以将函数定义放在头文件中(即,可以将其包含在多个编译单元中,而无需链接程序抱怨。)

内联扩展可能不起作用的某些情况是:

  • 如果函数返回一些值和一个循环,则存在一个开关或goto。

  • 如果函数返回类型为void并且存在return语句。

  • 如果函数包含任何静态变量。

  • 如果内联函数是递归的。

语法

//声明和定义函数的语法
inline return_type function_name(argument_list)
{
    ....;
    ....;
    ....;
    [return value;]
}