微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

可以将循环视为基本级别的函数吗?

如何解决可以将循环视为基本级别的函数吗?

如果你深入到汇编级和基本的 cpu 指令,什么是函数函数只是一些被 JMP(跳转)指令包围的代码块。因此,指令指针(当前正在执行的指令)从程序中的其他地方跳转函数的开头,执行它的代码,然后跳转到其他地方。

从这个意义上说,循环绝对是一个函数。唯一的区别是它通常会跳转到自己的开始检查某个条件并再次执行自己,而不是跳转到其他地方(通常是它调用的地方)。

解决方法

一个函数(或过程)的关键方面是,当它被调用时,它被调用的地址(返回地址)被记录下来,以便函数在完成时可以跳回调用者。许多处理器都有执行这两个常见任务的特殊指令。例如,x86 有 datacall

循环通常不会做任何事情。因此,它不是这个意义上的函数。

,

我认为您最大限度地减少了返回其呼叫地点的动态性质。我可以同意这都是分支,当然。然而,循环不是函数。

我们不能从多个其他代码位置调用循环,但我们可以从代码中的任何位置调用一个函数,无论是谁,它都会返回给它的调用者。

循环可以引用自由/未绑定变量,但函数可以参数化,这很重要,因为函数支持多个调用者和调用站点。

没有动态循环栈(循环静态嵌套)这样的东西,但是有动态调用栈和任意深度的动态调用链。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。