内联函数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;
}
推荐阅读
-
PHP使用empty检查函数返回结果时报Fatal error: Can't use function return value in write context的问题 - 心中的飞梦
-
php实现utf-8转unicode函数代码实例
-
求解,getjson函数哪里写错了解决方法
-
python常用函数
-
php常用hash加密函数,phphash加密_PHP教程
-
php数组操作函数之array_push()函数用法与定义
-
有关php array_values()函数的文章推荐10篇
-
php中过滤html代码的函数 提高程序安全性_PHP
-
Python内置函数——__import__ 的使用方法
-
Java中静态代码块、构造代码块、构造函数、普通代码块