【发布时间】:2018-09-06 07:24:20
【问题描述】:
对于下面的结构对象
struct test
{
int a; //expect address location 0xabcd
int b; //expect address location 0xmnop
} test1;
期望为 test1 实例的变量 a 和变量 b 分配不同的内存位置。
我知道全局变量可以通过使用 #pragma 地址
问题 1:这也可以扩展到结构吗?
如果不是那么,
问题 2:有什么更好的方法来做到这一点?
约束是:
- 两个变量必须在逻辑上保持在一起。
- 物理地址必须是分开的(可以通过某种方式配置)。
编辑 1: 为了进一步澄清,上述结构包含指示某个缓冲区中的位置的变量。 (最接近的类比是队列中的读/写索引) 然而,在这里,每个变量都必须存储在单独的位置,以防止某些模块意外访问。
【问题讨论】:
-
为什么? 您试图解决的真正问题是什么?这个问题是XY problem。
-
为什么?它甚至需要吗?您遇到的实际问题是什么?
-
struct test { int *a; int *b; } test1 = { 0xabcd, 0xmnop, } -
也许指针是您正在寻找的东西,但我并没有真正看到您要在这里完成什么。
-
@Lundin 我理解那里给出的答案,但我没有得到连接。我只是想说,这样的事情可能可以用指针来完成(就像你的回答一样)。并不是说添加
*是解决方案
标签: c memory-management data-structures pragma