linux对于栈空间使用技巧-inline

读linux源码以及搞驱动的时候,我们会看到很多inline的使用,对于系统栈空间是很有限的,如果不合理,频繁使用会造成栈空间不足导致程序出错,一个很明显的例子就是:函数死循环的递归调用结果导致栈内存枯竭。和c++中关于inline用法相同。
这里引用别人的一个例子:

//程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者

#include <iostream>
#include <string>
using namespace std;

inline string dbtest(int a); //函数原形声明为inline即:内联涵数

void main()
{
for (int i=1;i<=10;i )

{

cout << i << ":" << dbtest(i) << endl;

}
cin.get();

}

string dbtest(int a)//这里不用再次inline,当然加上inline也是不会出错的
{

 return (a%2>0)?"奇":"偶";

}

///
这样在编译的时候,每个for循环的内部所有调用dbtest(i)的地方都换成了(i%2>0)?"奇":"偶" 就避免了频繁调用函数对栈内存重复开辟所带来的消耗。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值