当前位置:首页 > 技术心得 > 正文内容

宏与子程序的区别

xjtudll17年前 (2010-02-08)技术心得10060

宏和子程序都是为了简化源程序的编写,提高程序的可维护性,但是它们二者之间存在着以下本质的区别:
1、在源程序中,通过书写宏名来引用宏,而子程序是通过CALL指令来调用;
2、汇编程序对宏通过宏扩展来加入其定义体,宏引用多少次,就相应扩展多少次,所以,引用宏不会缩短目标程序;而子程序代码在目标程序中只出现一次,调用子程序是执行同一程序段,因此,目标程序也得到相应的简化;
3、宏引用时,参数是通过"实参"替换"形参"的方式来实现传递的,参数形式灵活多样,而子程序调用时,参数是通过寄存器、堆栈或约定存储单元进行传递的;
4、宏引用语句扩展后,目标程序中就不再有宏引用语句,运行时,不会有额外的时间开销,而子程序的调用在目标程序中仍存在,子程序的调用和返回均需要时间。

总之,当程序片段不长,速度是关键因素时,可采用宏来简化源程序,但当程序片段较长,存储空间是关键因素时,可采用子程序的方法来简化源程序和目标程序。

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://www.xjtudll.cn/Exp/41/

标签: tenxTM87
分享给朋友:

“宏与子程序的区别” 的相关文章

把存储过程结果集插入临时表

--使用sp_helpserver 显示可用的服务器。  exec sp_helpserver  --打开服务器的"data access"属性  exec sp_serveroption '服务器名',...

RFID原理通俗讲解

最近,公司有项目用到了RFID,对RFID原理一直不甚了解。网上看到一篇好文,共享之。 原文网址:http://blog.21ic.com/user1/914/archives/2012/89510.html 以13.56MHz的RFID技术为例,分为读卡器和卡。读卡器是跟电源接的,当卡靠近读...

iOS10,Xcode8上传AppStore的时候,找不到构建版本

iOS10,Xcode8上传AppStore的时候,找不到构建版本

参考资料:http://blog.csdn.net/u013283787/article/details/52593143 使用Xcode8成功上传app之后,在itunes connect 构建版本里根本找不到上传的版本。 网上搜了搜,又查了一下邮件    &nb...

C# 百分号格式化 保持原数不变

C# 百分号格式化 保持原数不变

C# 格式化数字 百分号 需求: 格式化数值为百分比 但是保持输入的数值不变 也就是不要C# 自带的格式化百分数 因为他会自动*100 再加上百分号 解决方案: % 外面套一层 ‘ ’Code var column = this.gridViewItemDet...

清理金蝶用户异常登录信息SQL语句

重点:删除 t_userprofile 表中某用户的信息 1. 打开帐套管理,找到该帐套,备份帐套 备份完帐套后, ,选中该帐套,然后点属性,在帐套属性里复制数据库实体名 2.在电脑开始程序里打开查询分析器 直接点确定进入 在查询框里输入 use,然后将复制的数据库实体名粘贴其后面,中间要有空白,...

QQ域名邮箱MX设置

前段时间,QQ有了个域名邮箱,于是我立马开通了,设置过程很简单,首先在QQ邮箱界面激活域名邮箱功能,然后进入设置界面验证域名。通过验证后,进入域名控制面板设置MX。腾讯提示2-24小时就可以生效了,但我一直等到超过24小时还是未生效。于是只好搜索网络。腾讯帮助里面是这话说的:为什么我的MX记录设置验...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。