C/C++ inline 函数
C/C++中包含了一类inline函数,其只是单纯在原本函数申明或者定义前面多了一个inline
但是带来含义的确实不一样的。
如果不带inline那么主函数执行到函数入口处会跳到相应的函数代码除继续执行,在内存
中的代码段内存中这些代码不是连续的,这样肯能带来一些时间损耗
如果加入inline后函数会copy一份到主函数中,这样占用一定的内存但是不会jump(应该汇编使用的jump指令)
那么这样一来,可能inline函数适用的范围为函数代码本身代码量很少,而且执行非常快。
如果代码量大那么COPY占用的内存过多,如果执行非常慢,减少JUMP带来的提升只是
微不足道的提升,下面演示他的使用
以下的列子为了展示3个问题
1、inline function 申明
2、使用typedef 定义一个函数指针的别名,并且使用它来声明一个f_p的变量接受add的地址
3、函数返回的const类型的指针必须和在主函数中使用const int *接受
1 /*************************************************************************
2 > File Name: inline.cpp
3 > Author: gaopeng
4 > Mail: gaopp_200217@163.com
5 > Created Time: Thu 26 May 2016 09:45:18 PM CST
6 ************************************************************************/
7
8 #include
9
10 typedef const int* (*Fun_p)(const int *input);//typedef define a Fun_p alias to a function pointer
11 using namespace std;
12
13 inline const int * add(const int *input);
14 int main(void)
15 {
16 int input = 2;
17 const int *re;
18 Fun_p f_p = add;
19 re = f_p(&input);
20 cout<< *re <<endl;
21
22 }
23
24
25
26 inline const int * add(const int *input)
27 {
28 static int addva;
29 addva = *input+*input;
30 return &addva;
31
32 }
</endl;
C/C++ inline 函数相关推荐
- 关于inline函数
(一)inline函数(摘自C++ Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联. inline int min(int first, int ...
- C++ inline函数和宏
1. 内联函数 在C++中我们通常定义以下函数来求两个整数的最大值: int max(int a, int b) {return a > b ? a : b; } 为这么一个小的操作定义一个函数 ...
- inline函数使用容易导致出错的问题
对于inline函数,首先应该要短小(inline只是对编译器的一个建议,编译器是可以忽略的),其次inline函数的定义一定要与调用它的部分在同一个源文件里,不同的源文件可以分别定义一个相同inli ...
- inline函数学习笔记
一.c++ inline函数产生原因 由于函数调用会有一定的时间和空间方面的开销,特别是对于一些函数体代码不大但又被频繁调用的函数来讲,效率是很低的. 在C语言中,可以用宏函数来提高上面那种情况的效率 ...
- C++的inline函数
C++中使用const 变量替换宏定义 当然C++中也有使用inline 函数替换宏代码片段: #include <iostream>using namespace std;inline ...
- html中inline函数,开窗函数和窗口函数区别 inline函数和一般的函数有什么不同
sql over开窗函数 和group by的区别 / 蓝讯如果有多个聚合函数,但是分组依据不同,此时只能使用开窗函数. 而GROUP BY要求聚合函数的分组依据一致. SQL Server中的开窗函 ...
- C++的优秀特性2:inline 函数
(转载请注明原创于潘多拉盒子) Inline函数是C++的一个很小的特性,在不计较效率的情况下,这个特性似乎可有可无.然而,C++天生是为最为广泛的应用场景设计的,因此,总会有关于效率的问题.其实,除 ...
- 【转】 嵌入式C语言编程中Inline函数的应用
源地址:https://blog.csdn.net/vigour1000/article/details/9622037 有一段儿时间没写写经验笔记了,哎,也是自己这一段时间以来(其实最近一直是这个状 ...
- Inline函数使用注意事项
Inline函数使用注意事项 1.在一个文件中定义的inline函数不能再另一个文件中使用 2.inline函数应简洁,只有少数几个语句. 3.在inline函数中不能有循环,if,switch语句. ...
- C++之inline函数
1.为什么需要inline C中的宏没有调用,参数压栈.返回操作所以比函数快,但是有参数副作用,inline为了取代这种表达式形式的宏定义,它消除了宏定义的缺点,同时又很好地继承了宏定义的优点. ...
最新文章
- python 重写__repr__与__str__函数
- php写入变量cookie,PHP如何用数组变量给setcookie函数赋值?
- 学习笔记(20):Python网络编程并发编程-互斥锁与join的区别
- url编码函数encodeURI和encodeURIComponent
- iptables实现NAT
- 灰度共生矩阵GLCM及其matlab实现
- 数据结构--树形结构(1)
- pdf合并成一个pdf软件下载?pdf合并成一个pdf软件合成器工具
- dp 完全背包问题python
- 如何识别图片文字?这几个识别图片文字软件简单又高效
- .net reflector反编译破解软件
- import cv2 报错(linux环境)ImportError: libGL.so.1: cannot open shared object file: No such file or direc
- 字符编码OneHotEncoder
- swaks伪造钓鱼邮件
- [风一样的创作]Layui图标列表,二次封装
- HCIE必经之路(五)——OSPF综合实验(STUB及NSSA)
- python 梦幻西游_GitHub - BestBurning/mhxy: tensorflow实践:梦幻西游人物弹窗识别
- 强制用户使用定向推送功能是什么意思?整改措施请收好
- 基于阿里云ECS搭建云上博客!超详细图文步骤!
- 如何使计算机理解中医药知识,计算机技术在中医药信息学应用概
热门文章
- LaTeX技巧:算法标题 Algorithm如何重命名
- 遥感数字图像处理——第三章——空间域处理方法
- 遥感基础编程语言——IDL的应用
- 【ArcGIS操作】1 基础编辑篇
- curl header设置参数
- linux 下基本指令
- 计算某日是该年的第几天
- 4.在屏幕上输出以下图案: * *** ***** ******* ********* *********** ************* *********** *********
- Okhttp之同步和异步请求简单分析
- GitHub 标星 8w!这个开源面试总结屌爆了!