这个问题在这里已有答案:
什么是C语言的内联运算符?
我在这里发现了这个概念:“直到内联运算符成为标准C的一部分,宏才是生成内联代码的唯一可移植方式”。
当你将一个函数标记为inline
时,编译器会将该函数的主体合并到caller
中,因此调用该函数没有多余的工作量,编译器也可以在调用者和函数体中进行更多优化。
如果你有这个功能:
inline int min(int a, int b) {
return a <= b? a: b;
}
当你调用这个函数时,编译器不会使用call
,它会将这段代码合并到调用者代码中