inline函数
来源:互联网 发布:淘宝虚拟充值赚钱吗 编辑:程序博客网 时间:2024/04/28 14:13
在C++中,为了解决一些频繁调用的小函数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联涵数。
在程序编译时,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体来进行替换。
inline函数在被调用的地方,实际上是把函数体的代码部分重复了一遍,而不是象普通函数那样将参数压栈,然后call ....,这样做可以减少函数的调用时间,提高程序执行的效率,但是如果有很多地方调用,程序将会很大,因为函数体被重复了许多遍。
inline函数必须被放在头文件中。因为,只有这样,当改动了其实现时,所有调用它并展开它的调用点才能正确嵌入其函数体。
以下是Essential C++中的原话:
为了能够扩展Inline函数的内容,在每个调用点上,编译器都得取得其定义。这意味着我们必须将inline函数的定义置于头文件,而不是把它放在各个不同的程序代码文件。
我的理解是:在多文件程序中,由于inline函数可能会被编译器插入到每个文件里面,所以如果把inline函数放在某个cpp文件中,编译器可能不能找到这个inline函数而出错,但如果放在头文件中,由于编译器总是先处理所有的头文件,所以能先找到inline函数的定义。
- Inline 函数
- Inline 函数
- inline函数
- inline 函数
- inline函数
- inline函数
- inline函数
- inline函数
- inline 函数
- inline函数
- inline函数
- inline函数
- inline函数
- inline 函数
- inline函数
- inline 函数
- inline函数
- inline函数
- (转)让电脑比我先开工
- 使用 C# 2.0 命令行编译器
- 【再回首】说说你第一次上班的感受吧,顺便给即将第一次上班的朋友一些建议!
- C++的库应该更好用
- 如何消除PB5/6的时间限制?
- inline函数
- chm文件无法浏览
- boost中实用的一些小组件
- 电子商务一般框架
- Linux格式化数据 所用的命令
- 如何进行有效沟通
- VC头文件设置
- Linux操作系统为何会对计算机病毒免疫
- Quartz任务调度CronTrigger配置格式详细说明