假设sizeof(double)
总是大于或等于是否安全sizeof(void*)
?
在某些情况下,以下是可移植的吗?
int x = 100;
double tmp;
union {
double dbl;
void* ptr;
} conv;
conv.ptr = (void*)&x;
tmp = conv.dbl;
conv.dbl = tmp;
printf("%d\n", *((int*)conv.ptr));
它确实可以在我测试过的几台机器上运行,但是如果sizeof(void*) > sizeof(double)
.