inline 函数相关说明

来源:互联网 发布:vb控件加到窗体上 编辑:程序博客网 时间:2024/05/17 07:57
 简介: 内联函数是指用inline关键字修饰的函数。在类内定义的函数被默认成内联函数。
                   内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。
                  内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换,使用函数体替换调用处的函数名。
  一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。(一般来说,内联说明只是向编译器发出的一个请求,编译器可以忽略这个请求。)
 
优点:1、提高运行效率(不需要函数调用的开销,如:入栈出栈等)
             2、使用与规模小,流程直接,频繁调用的函数
缺点:
              1、增加空间的开销(在调用出直接嵌入函数体)
注意:
            1、很多编译器都不支持内联递归函数,而且一个75行的函数也不大可能在调用点内联地展开。
            2、内联函数声明与定义必须放在同一文件里,并且是放在.h头文件。需要对编译器可见。
            3、对于C++而言,在类内定义的函数是隐式的inline 函数。
            4、虽然无需在声明和定义的地方同时说明inline,但这么做是合法的。同时说明inline,这样使类更容易理解
PS:1 定义在类内部的函数隐式的位内联(inline)函数
sample.h
 class sample{  public:      char get() const { return content[cursor];}                      //(定义)隐式内联      inline char get (pos ht,pos wd) const;                             //显式内联}


PS:2 类内声明,类外定义
sample1.h
 class sample1{  public:      inline char get (pos ht,pos wd) const;                             //显式内联}inline char sample1::get (pos ht,pos wd) const //类外定义{   return contents[ht+wd];}




原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 3dmax灯光全黑怎么办 高压15o低压1oo怎么办 源码一位乘法中c怎么办 怀孕搬了重东西怎么办 深蹲力量不涨怎么办 ps4连接显示器分辨率低怎么办 大疆失去链接后怎么办 脑袋被锤了几拳怎么办 华为手机变板砖怎么办 电脑网页打开很慢怎么办 网页加载速度太慢.怎么办 cad字显示不出来怎么办 dell笔记本打不开机怎么办 手机系统界面已停止运行怎么办 大石退出菊丸怎么办 word空白页面突然变大了怎么办 高速上车胎爆了怎么办 没有定速巡航跑长途怎么办 惠普笔记本驱动无法安装怎么办 狙击手遇到热追踪导弹怎么办 做完卷腹脖子疼怎么办 医疗设备销售遭遇瓶颈怎么办 给顾客加油加超了怎么办 卡密码输错两次怎么办 擤鼻涕耳朵会响怎么办 鼻子里有血丝是怎么办 怀孕8周上火了怎么办 鼻炎犯了鼻涕流不停怎么办 擤鼻涕眼睛肿了怎么办 感冒咳嗽鼻子不通气怎么办 宝宝感冒不会擤鼻涕怎么办 新生儿鼻腔里有鼻涕怎么办 宝宝鼻腔有鼻涕出不来怎么办 怀孕的人感冒了怎么办 孕37周感冒咳嗽怎么办 吹鼻涕耳朵堵了怎么办 怀孕的孔雀鱼生病了怎么办 生病了咳嗽一直不好怎么办 宝宝生病治疗后咳嗽怎么办 2个月宝宝老是生病怎么办 2个月的哈士奇生病怎么办