如何在不使用泛型指针的情况下引用指向pdata或idata的指针?

时间:2016-06-14 06:04:31

标签: c pointers struct keil c51

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

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

假设我的方法的前提是合理的,那么如何在没有代码大小爆炸的情况下允许这些函数指向pdata或idata?

鉴于我可能认为这一切都错了,我是否会忽略这个问题的更传统的解决方案?

1 个答案:

答案 0 :(得分:0)

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

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

相关问题