我有这个:
unsigned int y = (unsigned int)(int*)foo;
如何获取地址存储在内存中的哪个foo
值?
让我们尝试更好地解释,假设它们是 int 类型:
int x = 10;
int *foo = &x;
unsigned int y = (unsigned int)(int*)foo;
int r = MAGIC(y); /* should be 10 */
x = 13; /* r still should be 10 */
y
应该保存x的地址,即10
整数地址。
r
应该复制位置的值y
,它是10
整数。
所以x
(如x = 13
)的任何变化都不应该改变 value r
。这只是一个整数。
问题是:我如何定义MAGIC
?