6.13 inline关键字(C99)

inline是C99标准新增加的关键字,这个关键字用于修饰函数。目的是提高函数的执行速度。这个关键字是给编译器看的,编译器对inline性质的函数会做速度优化处理。通常这种优化处理的手段是把函数调用展开为函数定义中的语句,以节省函数调用的时间开销(建立实参和返回的开销)。但是C语言并没有要求编译器一定实现这一点。

下面是一个使用inline关键字的示例。

6.13 inline关键字(C99) - 图1

在这段程序中,编译程序可能不会按照常规那样,把代码编译成准备实参、函数调用、函数返回这种执行顺序,而很可能会把qiuhe(5,6)直接展开为5+6。这同样可以通过定义类似函数的宏来实现,但是使用inline函数在提高速度的同时能保留程序结构化的益处。

inline是在C++中首先出现的语法内容,但在C语言中的使用更为灵活些。

在程序的某些函数调用成为速度瓶颈的时候,inline可能会改变程序的性能,但是也仅仅是可能而已,因为C标准并没有要求编译器一定实现这一点,而仅仅是“暗示”或“希望”编译器能这样做。编译器可能会把函数调用优化成直接执行的语句或表达式,也可能通过其他的手段进行速度优化,甚至也可能干脆对这个“暗示”或“希望”视而不见。

总之,inline的目的是提高程序的性能,但对程序功能没有什么影响。对于初学者,粗略地知道inline是一个可能提高程序执行速度的关键字足矣。即使不了解inline这个关键字,也无所谓。