内联函数和宏定义

内联函数的定义:程序中被inline修饰符所修饰的函数。
例如:

inline int sum(int a, int b)
{
    return a + b;
}

内联函数与普通函数相比有以下几个特点:
1、被inline修饰的函数在编译阶段不会产生符号,因此inline修饰的函数不能像普通函数一样分文件写,若分文件写,会发生符号未定义错误(在链接阶段引用的符号找不到定义)。即本文件可见;
2、被inline修饰的函数在编译阶段处理,在函数的调用点将该函数的代码展开,没有函数的调用开销,可以加快程序运行的速度。
3、其只在release版本下起作用。
4、一般放在头文件中,防止被重新定义。

内联函数与宏定义的区别:
a、内联函数编译时要做类型检查,而后在将代码在函数调用点展开;而宏定义是在代码处不做任何检查的简单替换,从这点来看,内联函数更为安全。
b、inline函数是函数,但在编译时不单独产生代码,而是将有关代码嵌入到调用处;而宏定义不是一个函数只是在编译预处理阶段将有关字符串替换成宏体。

内联函数一般只用于一下情况:
1、一个函数不断被重复调用。
2、函数只有简单的几行,且函数中不包含for、while、switch语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值