求共用体sizeof大小
#include "stdio.h"
typedef unsigned char BYTE;
typedef struct
{
BYTE a;
BYTE b;
BYTE c;
BYTE d;
} BitField_t;
void main()
{
typedef union uu{
BitField_t e;
//BYTE eBitField;
BitField_t e1;
BitField_t e3;
long l;
long k;
BYTE eBitField;
BYTE eBitField1;
BYTE eBitField2;
}aa;
printf("%d",sizeof(aa));
}
为什么是4呢?
[解决办法]
sizeof(aa)=sizeof(long)
[解决办法]
共用体的大小是成员里面,占字节最长的
[解决办法]
据说是共用体里最长的
[解决办法]
对于联合体来说,长度是内部成员长度最长的那个
http://topic.csdn.net/u/20110729/11/1549376a-e23e-441a-a618-bb2a9826b078.html
[解决办法]
aa的长度就是sizeof(long)
[解决办法]
之所以称为共用体,是因为它的各成员都用同一段内存储存数据的,因此一次只能使用其中的一个成员,而且下一次使用另一个成员时,将覆盖前一个成员的数据,因此它的大小自然是由共用体中长度最长的那个成员决定喽。
[解决办法]