内联函数与普通函数在C++中的区别

内联函数与普通函数在C++中的区别

内联函数 是当被调用时由编译器扩展的函数。在函数调用时,执行了很多开销任务,如保存寄存器、将参数推到堆栈上,并返回到调用函数。这些开销耗费时间,对于小型函数而言效率很低。在C++中,内联函数用于解决这些开销。当被调用时,编译器将其作为队列进行扩展,从而避免了开销。在函数声明之前使用关键字“ inline ”。

语法:

inline return_type function_name(parameters) 
{
// 插入自己的函数代码
}

示例:

// C++程序演示内联函数
 
// 引入输入输出流文件
#include <iostream>
 
using namespace std;
 
// 方法1
// 内联函数
// 用于将两个整数相乘
inline int multiplication(int x, int y)
{
 
    // 返回两个数字的积
    return x * y;
}
 
// 方法2
// 主驱动程序/函数
// 执行从这里开始
int main()
{
    // 使用上述创建的multiplication()inline()打印和显示乘积结果数字
    cout << "Multiplication ( 20 , 30 ):"
         << multiplication(20, 30) << endl;
 
    return 0;
}  

输出

Multiplication ( 20 , 30 ):600

现在我们来看下一个函数, 普通函数 就像C++中的一个普通函数一样。它促进了代码重用,使程序模块化。 在函数调用时,执行了很多开销任务,如保存寄存器、将参数推到堆栈上,并返回到调用函数。

语法:

return_type_name function_name( parameters) 
{ 
 // 插入自己的函数代码 
}

示例:

// 引入输入输出流
#include <iostream>
 
using namespace std;
 
// 方法/函数
// 用于获取所传递整数数值的平方值
int square(int s)
{
    // 返回数字的平方
    return s * s;
}
 
// 方法
int main()
{
    // 调用square()方法/函数
    // 在随机值N上
     
    // 假设N = 5
    // 仅显示消息
    cout << "Enter number to compute its square : 5 " << endl;
 
    // 在main()中调用上述square()并在控制台上打印/显示它
    cout << "Square is : " << square(5) << endl;
   
  return 0;
}  

输出

Enter number to compute its square : 5 
Square is : 25

内联函数与普通函数在C++中的区别

序号 内联函数 普通函数
1. 调用时会膨胀为内联函数。 提供程序模块化的函数。
2. 通常用于增加程序的执行时间。 通常用于提高代码的可重用性和可维护性。
3. 基本上是一个函数,在函数很小且经常调用时使用。 基本上是一组语句,执行特定任务。当函数很大时使用。
4. 在声明时需要 ‘inline’ 关键字。 在声明时不需要任何关键字。
5. 比普通函数执行速度快得多。 比内联函数在函数很小的情况下执行速度慢一些。
6. 在每个函数调用时,函数体的副本都会复制到所使用的每个上下文中,从而减少在存储设备或硬盘中搜索函数体的时间。 在存储设备中存储函数体,当每次调用该特定函数时,CPU必须将函数体从硬盘加载到RAM中执行。
7. 编译器总是在编译时将该函数的代码副本放置在每个调用该函数的点。 不提供这种类型的功能。
8. 通常包含只有 2-3 行代码。 当行代码真正庞大时,即普通函数根据需要包含更多代码。
9. 与普通函数相比,更难理解和测试。 与内联函数相比,更容易理解和测试。
10. 存在于类内的函数被隐式命名为内联函数。 存在于类外的函数被视为普通函数。
11. 太多的内联函数在编译后会影响文件大小,因为它会复制相同的代码。 太多的普通函数在编译后不会影响文件大小。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程