【发布时间】:2009-06-03 20:35:41
【问题描述】:
我需要将指针表示为用户的字符串。有时这些值可能会保存到一个文件中并传输到具有不同架构的计算机(32 位与 64 位是当前的主要问题)并从文本文件加载进行比较 - 我只会比较加载的值 彼此,但我仍然更喜欢比较数字而不是字符串。
我目前正在使用:
SomeClass* p;
...
printf("%ld", (uintptr_t)p);
但我想知道这是否是可移植的(不过,Windows 和 Linux 仅在这个阶段很重要),一旦 128 位系统出现,这是否会破坏?
编辑:除非我决定使用 uint64_t,并确定 64 位是屋顶,否则这是无法完成的,因为某些 64 位指针可能超出 32 位整数范围。所以,我决定比较字符串会更安全,即使它比较慢。
【问题讨论】: