在 8051 目标上使用 Keil C51。我有一组带有指向结构的指针的函数。该结构将仅存在于 pdata 或 idata 中。由于大小限制和内存映射魔法,我无法将所有结构压缩到同一内存空间。
当我用通用指针声明我的函数集时,代码大小显着增加。作为测试,我用指向 pdata 中结构的指针声明了这些函数。当我这样做时,我的代码大小恢复正常,但是我当然会收到 mspace 警告,并且每当我将 idata 中的结构引用到函数中时,我都会指向错误的内存空间。
假设我的方法的前提是合理的,如何让这些函数在代码大小不爆炸的情况下获取指向 pdata 或 idata 的指针?
考虑到我可能做错了,我是否忽略了这个问题的更传统的解决方案?
最佳答案
听起来您确实需要通用指针。
也许您应该从另一个方向解决代码大小问题。您使用的是哪种编译器/链接器优化设置?
关于c - 如何在不使用通用指针的情况下引用指向数据或数据的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37804085/