提问人:ByteEater 提问时间:7/18/2023 更新时间:7/18/2023 访问量:60
将 void* 以外的指针转换为整数和从整数转换指针
Casting pointers other than void* to and from integers
问:
根据 cppreference.com 的说法,在支持它的实现中,是一种可以保存指向 的指针的类型。因此,可以将 type 的值转换为 (或 ) 并返回相同的值。但是,指向不同类型的指针不必具有相同的大小。intptr_t
void
void*
intptr_t
uintptr_t
所有指向对象的指针都可以在往返保证下进行转换。但是,似乎没有任何要求实际上至少与指向对象类型的任何指针一样宽。因此,在任何对象类型之间和对象类型之间进行强制转换并期望往返是否安全?还是应该在每个方向上添加一个中间铸件?void*
void*
intptr_t
T*
T
void*
答: 暂无答案
评论
intptr_t
void
void*
void
的指针。然后,可以将此指针转换为例如。然后,您可以将其转换回指向 的指针,该指针可以转换回指向原始对象的指针。无法保证按位表示之类的内容,只能保证这些转换是有效的,并且不会丢失原始对象。void
intptr_t
void
void*