【发布时间】:2021-11-09 18:54:25
【问题描述】:
这个问题类似于“Are all pointers guaranteed to round-trip through void * correctly?”,但更深一些。
给定:
#include <stdint.h>
int i;
int *ip1 = &i;
void *vp1 = ip1;
intptr_t x = (intptr_t)vp1;
void *vp2 = (void *)x;
int *ip2 = vp2;
那么vp1 == vp2 保证为真(即使它们可能不共享相同的二进制表示),但ip1 == ip2 保证为真?即,在这种情况下,等式关系是否传递?
【问题讨论】:
标签: c pointers language-lawyer void-pointers