就是内嵌函数
在编译时被调用处像宏一样展开,内部会实现编译优化
有些函数即使你声明了inline,也不一定会成为真正的inline,这要有编译器定
在编译时被调用处像宏一样展开,内部会实现编译优化
有些函数即使你声明了inline,也不一定会成为真正的inline,这要有编译器定
解决方案 »
- connect()怎连接问题
- 关于模态对话框的简单问题, 谢谢各位!
- 30分求怎样在双击文件夹时弹出一个密码输入框控制文件夹的访问
- error C2665: “operator new” : 5 个重载中没有一个可以转换参数 1(从“const char [71]”类型)
- 如何在dll中使用custom control控件?如何妥善分配各个dll中资源不冲突?
- WM_APP和WM_USER有什么区别?
- 我的工程是继承自CListView里,现在我想在一个对话框中对ListView进行操作,该如何呢?
- 只想建个文件,不想建工程?
- 简单的directdraw送分问题,只要你懂directdraw!
- dll中创建的模态对话框,为什么关闭的时候会报断言错误
- 大家讨论一下:金山游侠是怎么做的?如何得到内存中的数据?能动态得到吗?
- 请推荐一本LINUX下C编程书籍,谢谢!
和 #define 宏不同的是,内联函数总是对参数只精确地进行一次求值,从而避免了声名狼藉的宏错误。换句话说,调用内联函数和调用正规函数是等价的,差别仅仅是更快:
小心过度使用内联函数可能导致代码膨胀。在页面调度环境中,它可能会给执行性能带来负面影响。代码膨胀术语只表示代码的尺寸会增大(膨胀)。在有关内联函数的上下文中,更关心的是内联函数会增加执行代码的尺寸,并导致操作系统不稳定。这意味着操作系统要花费大部分的时间从磁盘取出代码。当然,内联函数也可能减小执行代码的尺寸。看上去反了,其实是真的。特别是,调用函数的代码总量有时会大于展开的内联函数的代码总量。这样的情况会发生于非常小的函数,当优化器能删除很多冗余代码时——也就是当优化器能使长的函数变短时,也可能会发生于长的函数。因此结论就是:没有简单的定论。你必须因地制宜。不要使得答案象这样的单纯化,“不要用内联函数”或“总是使用内联函数”或“当且仅当函数代码少于 N 行时用内联函数”。这种一刀切的方法可能用起来非常简单,但是它们产生的并不是最佳结果