首页 > 后端开发 > C++ > 为什么 C/C 中函数和数据指针不总是兼容?

为什么 C/C 中函数和数据指针不总是兼容?

DDD
发布: 2024-12-05 02:12:13
原创
426 人浏览过

Why Aren't Function and Data Pointers Always Compatible in C/C  ?

为什么在 C/C 中函数和数据指针不兼容

虽然数据指针和函数指针之间的转换在大多数平台上通常是成功的,不保证兼容性。这就提出了一个问题:考虑到两者都指向内存地址,兼容性不应该是简单的吗?

解释在于计算系统所采用的架构。 C/C 并不将自身限制于特定的体系结构,并且允许灵活地管理内存。一些架构(例如哈佛架构)为代码和数据维护单独的内存空间。相比之下,冯诺依曼架构将代码和数据存储在同一内存中。

对于冯诺依曼架构,代码和数据驻留在同一空间中,函数指针和数据指针之间的转换可能是可能的。然而,实际的兼容性不能被认为是理所当然的。在区分两个内存空间的系统中,例如哈佛架构,转换将会失败。

以上是为什么 C/C 中函数和数据指针不总是兼容?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板