子程序与宏有何区别?

maggie619 2007-05-06 10:42:52
子程序与宏有何区别?

各自用在什么地方,什么时候用子程序,什么时候用宏?
...全文
1119 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
redfox668 2007-05-06
  • 打赏
  • 举报
回复
宏调用时不会跳.只是在编译时把你定义的一段代码拷到你调用的地方,就像你铺路时先做好砖块然在到处铺一样.子程序就不同.在编译时只产生一段代码.在你调用时就跳到它家去.用玩了还要还给它的!!!
Nikshuang 2007-05-06
  • 打赏
  • 举报
回复
和C一样,用宏会占用多一些空间但比用函数快,对于一些简单的处理用宏也不失为一种不错的方法
Myu2006 2007-05-06
  • 打赏
  • 举报
回复
如果可能,尽量别使用宏,因为宏很危险,如果不注意的话,宏代替会经常存在不正确的情况
因为宏只是在汇编时进行简单的替换,因此它不具备错误隔离的能力
Myu2006 2007-05-06
  • 打赏
  • 举报
回复
书上说的很清楚,宏在汇编时直接代替调用宏的语句,而子程序却不是,你学过C语言吗?原理与C语言的宏及函数类似
JeanChenYu 2007-05-06
  • 打赏
  • 举报
回复
for example:
hate macro AA
a:
mov ax,AA
endm

When you use this macro in your programe more than once,
error would occur.

my programe:
....
hate 1
....
hate ax
....
end

error: redifination:a
JeanChenYu 2007-05-06
  • 打赏
  • 举报
回复
不是不得以,我不写MACRO的,因为就像楼上说的,
在MACRO中不能定义LABEL,我想MACRO在编译时,
是将MACRO的源代码移动到程序中,因此,当你重复
使用MACRO时,而且MACRO中有LABEL时,在编译的
时候,就会出现LABEL REDIFINATION的错误,
用子程序则没有此类限制.
这是我的意思,不一定跟你一样的.
maggie619 2007-05-06
  • 打赏
  • 举报
回复
期待
qlmi 2007-05-06
  • 打赏
  • 举报
回复
很形象!

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧