你只需要把它作为一个指针:
int *pointerToTwo = (int *)2;
Run Code Online (Sandbox Code Playgroud)
然后你可以照常取消引用:
int valueAtTwo = *pointerAtTwo;
Run Code Online (Sandbox Code Playgroud)
你做这种事情的通常原因是访问内存映射寄存器,在这种情况下volatile建议使用关键字:
int valueAtTwo = *(volatile int *)2;
Run Code Online (Sandbox Code Playgroud)
或者也许将所有的转换都粘贴到宏中以使代码更易于阅读:
#define intValueAt(x) (*(volatile int)(x))
int valueAtTwo = intValueAt(2);
Run Code Online (Sandbox Code Playgroud)
旁白: 2几乎肯定不是这个用例的有效地址.我刚刚使用它,因为你在问题中提到了它.
| 归档时间: |
|
| 查看次数: |
177 次 |
| 最近记录: |