内联函数inline

来源:互联网 发布:经济数学知乎 编辑:程序博客网 时间:2024/05/23 15:27

内联函数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优点:避免调用时的额外开销(入栈与出栈操作)有类型检查 不易产生逻辑错误代价:由于内联函数的函数体在代码段中会出现多个"副本",因此会增加代码段的空间。本质:以牺牲代码段空间为代价,提高程序的运行时间的效率。适用场景:函数体很“小”,且被“频繁”调用。#endifint _tmain(int argc, _TCHAR* argv[]){int i = 0;while (i<5){// printf("%d\n",SQR(i++));printf("%d\n", sqr(i++));}return 0;}


原创粉丝点击