说明
内联函数是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元素的值
}
}
使用注意事项
- 内联函数中不要使用循环语句,到时可以在循环语句中使用内联函数提高效率。
- inline是非强制的,编译器有可能忽略inline属性。