内联函数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;
}