c - 如何在不使用通用指针的情况下引用指向数据或数据的指针?

标签 c pointers struct keil c51

在 8051 目标上使用 Keil C51。我有一组带有指向结构的指针的函数。该结构将仅存在于 pdata 或 idata 中。由于大小限制和内存映射魔法,我无法将所有结构压缩到同一内存空间。

当我用通用指针声明我的函数集时,代码大小显着增加。作为测试,我用指向 pdata 中结构的指针声明了这些函数。当我这样做时,我的代码大小恢复正常,但是我当然会收到 mspace 警告,并且每当我将 idata 中的结构引用到函数中时,我都会指向错误的内存空间。

假设我的方法的前提是合理的,如何让这些函数在代码大小不爆炸的情况下获取指向 pdata 或 idata 的指针?

考虑到我可能做错了,我是否忽略了这个问题的更传统的解决方案?

最佳答案

听起来您确实需要通用指针。

也许您应该从另一个方向解决代码大小问题。您使用的是哪种编译器/链接器优化设置?

关于c - 如何在不使用通用指针的情况下引用指向数据或数据的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37804085/

相关文章:

c - send() 和 receive() 使用一个套接字?

c - 为什么我的 tokenize 循环无法正确填充 char-array-pointers 数组

c - Strtok + If 语句

c++ - 用 foo(T) 替换模板函数 foo(T*)

c - 为什么这个整数会自己递减?

c++ - 将 Struct 信息放入一个大数组中

c - C中数组指针的问题

c# - C sharp "public IntPtr pHandle = IntPtr.Zero;"相当于 Delphi "hp: Pointer"

c - 在结构中分配和访问指向字符串的指针

c - c中的结构默认值