请问这种共用体怎么计算?(语言-c++)
这种题,一直弄不懂,只会一些很简单的,教教我这种题
结果包含了不可见的字符0x00
这个程序在不同平台,结果不同
x86是little-endian,所以共用体内容
作为字节数组是 0x39 0x00 0x38 0x00
作为整数就是0x00380039
作为short是 0x3900 0x3800
#include <stdio.h>
#include <stdlib.h>
int main()
{
union
{
short i[2];
long k;
char c[4];
} r, *s=&r;
s->i[0]=0x39;
s->i[1]=0x38;
printf("%c %c %c %c %lx",s->c[0],s->c[1],s->c[2],s->c[3],s->k);
return 0;
}