社区
C语言
帖子详情
宏转化函数 是否降低函数性能?
xtyjason
2009-04-27 12:44:00
宏转化函数 性能是会降低吗?
...全文
122
10
打赏
收藏
宏转化函数 是否降低函数性能?
宏转化函数 性能是会降低吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
猫已经找不回了
2009-04-27
打赏
举报
回复
会的。
theone11
2009-04-27
打赏
举报
回复
同一个功能,用宏来实现的时间效率肯定比用函数来实现好得多,毕竟宏是直接展开代码,而调用函数的成本就高得多了.
liliangbao
2009-04-27
打赏
举报
回复
[Quote=引用 4 楼 zjl_1026_2001 的回复:]
宏是在预编译过程中做了一个代码的替换,而函数则是在运行过程中做入栈、保存数据、出栈之类的工作,会有额外的系统开销的。
所以自然是宏的效率高。
但是,因为宏是在预编译过程中的代码替换,如果你的宏定义的代码特别大,而且用到宏的地方又很多,就会使生成的执行文件很大,
两者如何取舍关键看实际情况了
[/Quote]
Up,但是一般是会的,因为宏的代码都不是很长~
jiyan1221
2009-04-27
打赏
举报
回复
個人認為,宏比較適合于短小的函數。適當的運用宏對程序效率的提高肯定是有幫助的。但是反過來降低效率也不是不可能。
pathuang68
2009-04-27
打赏
举报
回复
1. 将宏改写成inline函数,两者性能差不多。
2. 宏会有很多隐含的问题,尽量少使用,比如:
#define MAX(a, b) ((a > b) ? (a) : (b))
如果 a = 5; b = 0;
那么使用万MAX(a++, b)后,a=7。
Scott Meyers有一本书叫Effective C++,第一条就是告诫大家尽量少用宏。:)
fox000002
2009-04-27
打赏
举报
回复
看具体情况吧
如果代码完全一样,函数会多出栈入栈的操作,效率会降低
改成 inline 的话,可能和宏差不多
chenaiyuxue
2009-04-27
打赏
举报
回复
宏是牺牲空间效率来换取时间效率的
zhanghuayi_xiyou
2009-04-27
打赏
举报
回复
宏只是在预编译的时候进行代码替换,增加的是代码量。而函数则是在运行的时候使用系统资源。
对于比较短小的功能函数,使用宏可以提高程序的运行效率。
沙漠里的海豚
2009-04-27
打赏
举报
回复
宏是在预编译过程中做了一个代码的替换,而函数则是在运行过程中做入栈、保存数据、出栈之类的工作,会有额外的系统开销的。
所以自然是宏的效率高。
但是,因为宏是在预编译过程中的代码替换,如果你的宏定义的代码特别大,而且用到宏的地方又很多,就会使生成的执行文件很大,
两者如何取舍关键看实际情况了
fly_new
2009-04-27
打赏
举报
回复
宏在绝对多数情况的效率比函数高,但是我敢肯定的说这个不肯定!!不信的朋友,晚上回来举例。
安全散列算法SHA
代码可能分为多个
宏
函数
,
宏
函数
通常用于简化代码,提高效率,但也可能导致代码可读性
降低
。 另一方面,"SHA1_Bao"可能代表的是对文件或“包”进行SHA-1哈希计算的实现。与处理字符串不同,文件通常较大,可能需要...
易语言-易语言5.32编写
宏
插件
通过
宏
,开发者可以录制一系列操作,然后将这些操作
转化
为可执行的代码,形成一个插件。易语言5.32提供的
宏
插件功能,允许用户编写自己的插件模块,实现对易语言环境的扩展,例如增加新的
函数
库、提供特定的编辑器...
C语言
宏
定义、
宏
函数
、内置
宏
与常用
宏
而C语言(C++)特有的两把双刃剑指针和
宏
定义/
宏
函数
使得C语言在底层开发中披荆斩棘、无所不能。这两个概念涉及范围比较广,其分支点也比较多,可谓星罗棋布,但这每颗星都足以照亮C语言因其开发周期、可维护性、可...
宏
定义及相关用法
宏
与
函数
带副作用的
宏
参数 特殊符号:’#’、’##’ 1、一般用法 2、当
宏
参数是另一个
宏
的时候 __VA_ARGS__与##__VA_ARGS__ 一些成熟软件中常用的
宏
定义: 1,防止一个头文件被重复包含 #ifndef COMDEF_H #...
函数
调用的代价与优化
译者注:本文原始链接为https://johnysswlab.com/make-your-programs-run-faster-avoid-function-calls/,翻译获得作者同意。... 在编译器的世界里,所有这些结构都
转化
为对
函数
的调用:许多小
函数
相互调.
C语言
70,020
社区成员
243,264
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章