Windows上的默认64位地址数据类型

Joh*_*ing 0 c c++ 64-bit memory-address

我需要在Windows 7 64位上操作64位地址,我现在正在使用类似的东西

BYTE m_myAddress[8];
Run Code Online (Sandbox Code Playgroud)

但如果我需要添加0x60到地址,它会变得非常棘手.我可以转换它,但我想问一下哪种数据类型最适合这个.

应该使用什么数据类型来存储64位地址?

joh*_*ohn 9

我会想到void*或者char*是最自然的.char*特别是如果你想对地址进行算术运算.

char* addr = ...;
...
addr += 0x60;
Run Code Online (Sandbox Code Playgroud)

  • 如果你需要做更复杂的操作(比如bit twiddling),我建议使用`uintptr_t`(来自`<stdint.h>`),这是一个保证足够大以保持指针大小的整数类型值. (3认同)