调用函数,需要进入其内部,如果函数是一个实现非常简单的功能的函数,那么花费在函数调用,进入内部一系列处理以及返回结果的时间比起实现的功能来说,时间开销非常大。
这时可以采用宏的方式
不过宏不进行类型检查,且有BUG。++x后,x为5,我们想要返回的结果应该是5才对,可是它返回6。这是因为宏是在编译阶段把宏定义的跟使用宏的地方进行替换。相当于以下方式。
其实++n是实现两次,所以返回6.
c++提供一种内联函数,在函数前加inline。它只是一种建议,编译器自己决定听不听取建议。这种内联函数是在编译阶段,把实现功能那段代码块直接嵌入到所调用处,这样就可以避免函数时间上更多的开销。
注意:在Debug模式下,编译器是不会进行内联函数处理,这是因为方便调试。一般使用内联函数的功能是非常小的,很多地方可以使用到,就把它定义在头文件中。