c++ 基础4、为什么需要inline

我们都知道 inline 也叫内联函数 ,

1、为什么需要inline 

内联函数可减少cpu的系统开销,并且程序的整体速度将加快,但当内联函数很大时,会有相反的作用,因此一般比较小的函数才使用内联函数,内联函数是C++的增强特性之一,用来降低程序的运行时间。当内联函数收到编译器的指示时,即可发生内联:编译器将使用函数的定义体来替代函数调用语句,这种替代行为发生在编译阶段而非程序运行阶段,值得注意的是,内联函数仅仅是对编译器的内联建议,编译器是否觉得采取你的建议取决于函数是否符合内联的有利条件。如何函数体非常大,那么编译器将忽略函数的内联声明,而将内联函数作为普通函数处理。

2、inline 和 define 区别

#define int  uInt  宏定义,其实就是一个别名,给原始的变量另外起一个名字,当在程序编译时,会将宏定义进行展开调用,所以一般宏定义要设计的小巧一些,否则运行效率会降低折扣

3、书写要点

常用于类中,如下实现,inline 的定义和实现都需要在类内部且实现要小巧,代码不造成堆积,如果函数体过大,则编译器会采用普通函数进行处理

#include <iostream>
#include <stdlib.h>
#include <stdio.h>

///静态全局变量 限制文件作用域 当前文件
static int g_result = 0;

class chang {
public:
	chang() = default;
	~chang() = default;
	
	///修饰类传数 一般配被 & 意志传递进入的参数不被函数所修改,即不允许修改
	inline bool setValue(const int& va) {
		static int result = va;
		m_value = va;
		g_result = m_value;
		return true;
	}
	/// 修饰函数,表示不能修改类中数据成员也不能调用类的成员函数
	inline int getValue() const {
		return this->m_value;
	}
	static int getResult() {
		return g_result;
	}
	void printfThis()
	{
		std::cout << " this:" << this << std::endl;
	}
private:
	/// 用muteable 修饰以允许该成员可以在常量函数中被修改
	mutable int m_value;
};

由于本人经验有限制,如有错误,欢迎修正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值