我对在C和C++中使用内联函数有一些疑问。我被告知要在我经常使用的小函数上使用它,但我想明白它是如何工作的。这只是一个例子的片段。有关内联性能的问题
static inline point3D createPoint3D(float x, float y, float z){
point3D newPosition;
newPosition.x = x;
newPosition.y = y;
newPosition.z = z;
return newPosition;
}
究竟是什么做的,为什么它有助于代码的运行速度更快?这是来自90年代的过时优化吗?
为什么我只能在小功能上使用它?如果我为大功能做了它会不好?
在大量功能上使用它不好吗?
相关通知(如果您从未使用内联,则容易忘记):要在跨编译单元边界进行内联工作,必须将函数的* body *内联到标头中,而不仅仅是原型,否则当编译其他编译单元时,编译器将没有内联代码(另请参见http://www.parashift.com/c++-faq-lite/inline-functions.html#faq- 9.6)。 – 2010-09-12 22:10:57
关于内联这里也有一些很好的答案:http://stackoverflow.com/questions/3647053/what-is-are-the-purposes-of-inline – Default 2010-09-12 22:27:38
请注意,在C中使用'inline'完全相同与C++中的“inline”不同。后者更直接。 [见这里](http://stackoverflow.com/questions/6312597/is-inline-without-static-or-extern-ever-useful-in-c99)进行C讨论。 – 2015-09-15 01:49:14