得分点:inline、函数调用开销、寻址、展开代码、提高效率、宏定义;
标准回答:
1. 内联函数和函数的区别:内联函数比普通函数多了关键字 inline ;-内联函数避免了函数调用的开销;普通函数有调用的开销;-普通函数在被调用的时候,需要寻址(函数入口地址);内联函数不需要寻址;一内联函数有一定的限制,内联函数体要求代码简单,不能包含复杂的结构控制语句,如果内联函数函数体过于复杂,编译器将自动把内联函数当成普通函数来执行;普通函数没有这个要求。
2.内联函数的作用:因为函数调用时候需要创建时间、参数传入传递等操作,造成了时间和空问的额外开销。通过编译器预处理,在调用内联函数的地方将内联函数内的语句复制到调用函数的地方,也就是直接展开代码执行,从而提高了效率,减少了一些不必要的开销。同时内联函数还能解决宏定义的问题。