union align { long l; char *p; double d; int (*f)(void); };
union header { struct block b; union align a; }; void main() { int i; i=sizeof (union header); } ½«ÉÏÃæµÄ³ÌÐòÓÃvc6.0ÔËÐÐ,´´½¨Ò»¸ömain.cpp,È»ºóÔËÐнá¹ûÊÇ12, µ«ÊÇÈç¹û½«main.cpp¸Ä³Émain.c,ÔÙ´ÎÔËÐÐ(»¹ÊÇÓÃvc6.0ÔËÐÐ),½á¹ûÊÇ16.Õâ¸öÊÇÔõô»ØÊÂ?¿ÉÄܲ»Ò»Ñù£¬¶ÔÆë·½Ê½ÊDZàÒë³ÌÐòµÄÒ»¸ö²ÎÊý ÍêÈ«ÓпÉÄÜ, ¸÷¸ö±àÒëÆ÷µÄ¶ÔÆë·½Ê½¶¼ÓпÉÄܲ»Í¬, ÉõÖÁ¿ÉÒÔ#pragma pack(n)À´É趨±äÁ¿ÒÔn×Ö½Ú¶ÔÆë·½Ê½ #pragma pack(n)Õâ¸öÓ¦¸ÃÊÇÓÃÀ´ÉèÖÃsturctµÄ°É,¶øÉÏÃæµÄÊÇunion
up up ÁªºÏÌåÒ»Ñù¿ÉÒÔÓÃÕâ¸öÉèÖã¬ÄÚ´æ¶ÔÆëÁ£¶ÈÒ»°ãĬÈÏÊÇ4×Ö½Ú£¬²»¹ý˵ʵÔÚµÄÎÒûÌý˵CºÍC++µÄÄÚ´æ¶ÔÆëÓÐʲô²î±ð£¬µ«ÓÖ¿´²»³öÎÊÌâµ½µ×³öÔÚÄĶù£¿ ¸ù¾ÝÎÒÃÇѧµ½µÄ֪ʶ£¬C/C++µÄÄÚ´æ¶ÔÆë·½Ê½ÊÇÒ»ÑùµÄ°¡¡£Á½ÕßûÓÐ˵²»Í¬°¡£¬Ó¦¸ÃÊDZàÒëÆ÷±¾ÉíµÄÎÊÌâ¡£ VCÖÐĬÈϽṹ°´8×Ö½Ú¶ÔÆë£¬ËùÒÔ½á¹ûÓ¦¸ÃÊÇ16¡£¹À¼ÆÊÇÄãÓÃmain.cppµÄʱºòÐÞ¸ÄÁË¶ÔÆëÉèÖã¬ÄãÔÙÊÔÊÔ¿´¡£ ²»Í¬±àÒëÆ÷µÄ¶ÔÆë×Ö½ÚÊý²»Í¬£¬VCĬÈÏΪ8¡£ÖÁÓÚC¡¢C++Ö®¼äµÄ¶ÔÆë£¬Ó¦¸ÃÊÇÏàͬµÄ ÏÖÔÚÓÖÕýÈ·ÁË,ÕæÊÇ»î