dar*_*une 5 c++ void void-pointers c++17
以下作品:
void* p = reinterpret_cast<void*>(0x1000);
Run Code Online (Sandbox Code Playgroud)
但是看起来“不正确/不安全”,例如。0x1000是一个int,甚至不是uintptr_t,我可以解决这个问题,但是有没有更好/更安全的投射方法?
0x1000 是一个
int甚至不是uintptr_t,我可以解决这个问题,但是有没有更好/更安全的铸造方法
0x1000is int,并且在reinterpret_cast<void*>(0x1000)编译器中发出一个符号扩展指令(这里的符号是 0)或一个带有立即操作数的普通寄存器加载指令,使值与void*.
由于许多原因,编译器不可能知道是否0x1000代表一个有效地址,因此它必须遵守并假设它是一个有效地址。
将表示地址的整数转换为指针reinterpret_cast是当前的做法。
| 归档时间: |
|
| 查看次数: |
176 次 |
| 最近记录: |