C++ 内联函数
1. 引入inline关键字的原因 在c/c++中, 为了解决 一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。 栈空间 就是指放置程序的局部数据(也就是函数内数据)的内存空间。 在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序出错的问题,如,函数的死循环递归调用的最终结果就是导致栈内存空间枯竭。 下面我们来看一个例子: #include <stdio.h> //函数定义为inline即:内联函数 inline char* dbtest(int a) { return (i % 2 > 0) ? "奇" : "偶"; } int main() { int i = 0; for (i=1; i < 100; i++) { printf("i:%d 奇偶性:%s /n", i, dbtest(i)); } } 上面的例子就是标准的内联函数的用法,使用inline修饰带来的好处我们表面看不出来,其实, 在内部的工作就是在每个for循环的内部任何调用 dbtest(i) 的地方都换成了 (i%2>0)?”奇”:”偶” ,这样就避免了频繁调用函数对栈内存重复开辟所带来的消耗。 2. inline使用限制 inline的使用是 有所限制的 ,inline只适合涵数体内代码简单的涵数使用