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