这个结构体的大小怎么计算?

typedef struct my
{
struct my *n;
struct my *p;
long value;
unsigned char a[16];
}m;
sizeof (m) = ?

系统默认为8字节对齐,所以是8+8+8+16=40

如果是32位系统,应该是 4+4+4+4+16=32
当然,这还要根据对齐方式来判断,如果设置为字节对齐、字对齐、双字对齐,那就是4+4+4+16=28
如果64位系统,暂时还没用过,不晓得是多少。