加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

递增函数指针

发布时间:2020-12-16 03:04:57 所属栏目:百科 来源:网络整理
导读:我刚刚了解了函数指针(指向存储函数的机器代码的地址的指针).这让我想到机器代码以及它如何存储在内存中. 机器代码是否连续存储在内存中,以便可以“手动”增加指针,直到指向以下/之前的功能? 这是一个调试器呢?他让我“看”程序计数器指向机器代码的位置?
我刚刚了解了函数指针(指向存储函数的机器代码的地址的指针).这让我想到机器代码以及它如何存储在内存中.

机器代码是否连续存储在内存中,以便可以“手动”增加指针,直到指向以下/之前的功能?

这是一个调试器呢?他让我“看”程序计数器指向机器代码的位置?

结论:可以用函数指针编程一个原始调试器?

我明白了这个权利,还是我要走了?

解决方法

有点.你假设函数将以与源代码相同的方式在内存中进行布局.很可能,他们不会 – 编译器通常将它们移动到所有的任何地方.

然而,您可以做的是使用指向当前指令的指针来逐步执行代码,并将该计数器递增一定量以获得下一条指令.然而,在这种情况下,我们不再称它为一个函数指针,因为它不只是指向一个函数的开头;相反,我们称之为instruction pointer.

事实上,这正是计算机的工作原理 – 它有一个特殊的register,称为program counter,它始终指向当前指令,并在每个指令之后递增一定量(GOTO命令相当于将值写入程序计数器).

然而,在现实世界中,这不是how debuggers work – 实际上,我甚至不确定是否有可能指向C中的代码段,而不是一个函数指针.更有可能的是,如果需要模拟程序计数器,则需要使用此技术,例如为其他处理器类型编写仿真器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读