欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

内联函数inline

程序员文章站 2022-03-16 08:48:31
...

内联函数inline

#include "stdafx.h"
#include <iostream>
using namespace std;


//宏函数
#define SQR(x) ((x)*(x))
//优点:内嵌到目标代码,减少了函数的调用,辟免压栈与出栈的开销
//缺点:在预处理阶段完成代码替换,易使生成代码段体积变大,易产生逻辑错误。


//普通函数
//int sqr(int x)
//{
//	return x*x;
//}
//优点:完成了某一些操作的抽象,避免了相同功能重复开发,有类型检查
//缺点:无法避免压栈与出栈的开消


//内联函数
inline int sqr(int x)
{
	return x*x;
}
#if 0
优点:避免调用时的额外开销(入栈与出栈操作)有类型检查 不易产生逻辑错误
代价:由于内联函数的函数体在代码段中会出现多个"副本",因此会增加代码段的空间。
本质:以牺牲代码段空间为代价,提高程序的运行时间的效率。
适用场景:函数体很“小”,且被“频繁”调用。
#endif


int _tmain(int argc, _TCHAR* argv[])
{
	int i = 0;
	while (i<5)
	{
		// printf("%d\n",SQR(i++));
		printf("%d\n", sqr(i++));
	}

	return 0;
}


相关标签: 内联函数