社区
C++ Builder
帖子详情
请问有谁知道在编译时有没有这样的选项可以设置:取消内联函数功能,即在编译时把内联函数当作普通函数对待。
blueandblue
2003-09-11 03:31:43
;;
...全文
93
3
打赏
收藏
请问有谁知道在编译时有没有这样的选项可以设置:取消内联函数功能,即在编译时把内联函数当作普通函数对待。
;;
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
blueandblue
2003-09-12
打赏
举报
回复
我知道gcc有这样的选项,gcc好象不是Borland公司的吧!
关键是在Borland的编译器有这样的选项吗?因为有两个函数系统是声明为内联函数形式的,而我又使用它们,所以需要在编译时去除内联功能。
repus
2003-09-11
打赏
举报
回复
较新版本的gcc有该选项
-fno-inline
zihan
2003-09-11
打赏
举报
回复
不会吧,你怎么会有这种要求阿,人家一般是有必要的时候才用的内联,你怎么可以给他取消了呢?
区别 :
内联
函数
和
普通
函数
的区别
内联
函数
和
普通
函数
的区别: 1、在
编译
过程中,
内联
函数
在
函数
的调用点,把
函数
代码全部展开,所以没有标准
函数
的栈帧的开辟和回退。 (如果 调用
函数
的开销 >
函数
执行的开销,那么就建议写为
内联
函数
) 调用的开销:
函数
的栈帧的开辟和回退 执行的开销:
函数
体内代码执行的开销 2、
内联
函数
只在本文件可见,
编译
阶段就进行了替换,所以不产生符号,所以一般在头文件中定义,这样就可以在其它文...
内联
函数
:
内联
函数
:
内联
函数
的定义: 将
函数
指定为
内联
函数
(inline),通常就是将它在每个调用点上“内联地”展开(有
时
编译
器根据
函数
的定义体,自动地
取消
不值得的内联),
函数
的代码被放入符号表中,在使用
时
直接进行替换(像宏一样展开),没有了调用的开销。效率更高。
内联
函数
与宏的区别:
内联
函数
在
编译
时
展开,宏在预
编译
时
展开。 在
编译
时
,
内联
函数
可以直接被嵌入到目标代码中,而宏只是一个简单的文...
从
编译
器的角度理解
内联
函数
1.
内联
函数
定义: GCC中的inline
函数
可以相当于在一个
普通
的全局
函数
加上inline属性。inline关键字仅仅是建议
编译
器在
编译
的
时
候做内联展开处理,而不是强制在gcc
编译
器中,如果吧
编译
选项
设置
为负无穷,即使是inline
函数
也不会被内联展开,除非
设置
了强制内联展开的属性(attribute((always_inline)))。 关键字inline 必须与
函数
定义体放在一起才能使
函数
成为内联,仅将inline 放在
函数
声明前面不起任何作用
普通
函数
调用: 系统首先要跳跃到该
函数
的入口地址,执行
基础备忘:C++
内联
函数
阅读目录 什么是
内联
函数
如何使
函数
内联为什么要使用
内联
函数
inline
函数
的优缺点分析什么
时
候该使用
内联
函数
正文 在C语言中,我们使用宏定义
函数
这种借助
编译
器的优化技术来减少程序的执行
时
间,那么在C++中
有没有
相同的技术或者更好的实现方法呢?答案是有的,那就是
内联
函数
。
内联
函数
作为
编译
器优化手段的一种技术,在降低运行
时
间上非常有用。我们将从: 什么
C++ |
内联
函数
内联
函数
在
编译
时
进行展开,在调用点出产生一个
函数
体代码的拷贝。因此,对
内联
函数
进行任何修改后,都需要对所有调用该
函数
的模块进行重新
编译
,否则它将会继续使用旧的
函数
。 如果想把一个
函数
定义为
内联
函数
,则需要在
函数
名前面放置关键字 inline,在调用
函数
之前需要对
函数
进行定义。如果已定义的
函数
多于一行,
编译
器会忽略 inline 限定符。
内联
函数
的作用: 引入
内联
函数
的目的是为了解决程序中
函数
调用的效率问题,
函数
的调用会有
函数
栈帧的开辟和
函数
内资源的回收处理产生的开销。如果
函数
功能
比较简单,如整数比较大小函
C++ Builder
13,871
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章