共用体变量成员的赋值问题
union charTolong
{
unsigned long longbuffer;
unsigned char charbuffer[4];
};//声明在头文件中
//以下定义和赋值在主函数中
union charTolong temp;
temp.longbuffer =(unsigned long)0x01ff;
temp.charbuffer[0] = 0;
printf("temp.longbuffer = %ld",temp.longbuffer);
。。。
我的理解是 longbuffer为32位,被赋予一个unsigned long型的数,之后下一语句中charbuffer[0]占一个字节,8位,即将共用存储空间的低8位置零,其他24位不变。上机试验了一下,若将第二句赋值语句注释掉则输出为511,不注释的话输出255.说明我的理解对喽?