我读到过将函数指针转换为数据指针,反之亦然,这在大多数平台上都有效,但不能保证有效.为甚麽会这样呢?两者不应该都简单地寻址到主内存中,因此是兼容的吗?

推荐答案

体系 struct 不必将代码和数据存储在同一个内存中.在哈佛体系 struct 中,代码和数据存储在完全不同的内存中.大多数体系 struct 都是冯·诺依曼体系 struct ,代码和数据在同一个内存中,但C并不局限于某些类型的体系 struct (如果可能的话).

C++相关问答推荐

C语言中字符数组声明中的标准

如何调试LD_PRELOAD库中的构造函数?

从纯C中访问通用项对话框

C lang:当我try 将3个或更多元素写入数组时,出现总线错误

每个 struct 变量在C中都有自己的命名空间吗?

GCC创建应用于移动项的单独位掩码的目的是什么?

在循环中复制与删除相同条件代码的性能

如何在STM8项目中导入STM8S/A标准外设库(ST VisualDeveloper)?

为什么此共享库没有预期的依赖项?

在进程之间重定向输出和输入流的问题

为什么Linux无法映射这个PT_LOAD ELF段?

将 struct 数组写入二进制文件时发生Valgrind错误

用C++高效解析HTTP请求的方法

如何修复我的qsort()算法?它每次都给出不同的结果

存储和访问指向 struct 的指针数组

将指针的地址加载到寄存器内联拇指组件中

从管道读取数据时丢失

无法在线程内用 C 打印?

如何确定 C 程序中的可用堆内存

如何在 C 中编辑 struct 体中的多个变量