C语言内联函数

本文介绍了C语言C99标准引入的内联函数特性,旨在提高程序执行效率。内联函数通过将函数代码直接插入到调用处来避免函数调用的开销,例如在排序算法中可能提升性能。但内联不是强制的,编译器会根据情况决定是否使用。注意内联函数不宜包含循环语句,且循环中可以使用内联函数以优化效率。
摘要由CSDN通过智能技术生成

说明

内联函数是C语言C99标准新增加的特性。
关键字inline告诉编辑器,任何地方调用内联函数,就直接把机器码插入到调用他的地方。这样执行效率更高,免去上下文调度的开销。

例子

// 函数swapf()交换两个浮点变量的值
// 参数:两个指向float的指针
// 返回值:无
inline void swapf( float *p1, float *p2 )       // 一个内联函数
{
   float tmp = *p1; *p1 = *p2; *p2 = tmp;
}
// 函数selection_sortf() 使用 selection-sort算法
// 对float数组进行排序
// 参数:一个float数组,以及其长度
// 返回值:无
void selection_sortf( float a[], int n )        // 对长度为n的数组进行排序
{
  register int i, j, mini;                      // 3个索引变量
  for ( i = 0; i < n - 1; ++i )
  {
    mini = i;                                   // 从索引i开始,寻找最小值
    for ( j = i+1; j < n; ++j )
      if ( a[j] < a[mini] )
        mini = j;
      swapf( a+i, a+mini);                      // 交换最小值元素和索引i元素的值
  }
}

使用注意事项

  1. 内联函数中不要使用循环语句,到时可以在循环语句中使用内联函数提高效率。
  2. inline是非强制的,编译器有可能忽略inline属性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值