Ê×Ò³ Ê«´Ê ×Öµä °å±¨ ¾ä×Ó ÃûÑÔ ÓÑ´ð ÀøÖ¾ ѧУ ÍøÕ¾µØÍ¼
µ±Ç°Î»ÖÃ: Ê×Ò³ > ½Ì³ÌƵµÀ > ¿ª·¢ÓïÑÔ > C++ >

Ϊɶ32λϵͳ4×Ö½Ú¶ÔÆëЧÂÊ×î¸ß

2013-01-05 
Ϊʲô32λϵͳ4×Ö½Ú¶ÔÆëЧÂÊ×î¸ß£¿´ó¼Ò¶¼ÖªµÀÄÚ´æµÄÊý¾Ý¶ÔÆë°É£¿µ«ÊÇΪʲô32λϵͳ4×Ö½Ú¶ÔÆëЧÂÊ×î¸ß£¿¿ÉÄÜ

Ϊʲô32λϵͳ4×Ö½Ú¶ÔÆëЧÂÊ×î¸ß£¿
´ó¼Ò¶¼ÖªµÀÄÚ´æµÄÊý¾Ý¶ÔÆë°É£¿
µ«ÊÇΪʲô32λϵͳ4×Ö½Ú¶ÔÆëЧÂÊ×î¸ß£¿¿ÉÄÜÓÐÈË»á˵¡°µØÖ·×ÜÏß×ÜÊǰ´ÕÕ¶ÔÆëºóµÄµØÖ·À´·ÃÎʵ쬷ÃÎÊЧÂÊ»á¸ßºÜ¶à¡±
µ«ÕâÊDZàÒëÆ÷²ãÃæµÄ£¬ÎÒÏëÁ˽⾿¾¹Êǵײãʲô»úÖÆµ¼ÖÂÕâ¸ö½á¹û£¿
»¹ÓÐÈç¹û±ØÐë°´4×Ö½Ú¶ÔÆëÀ´·ÃÎÊÄڴ棬 ÄÇô32λϵͳֻÐèÒª30¸ùµØÖ·×ÜÏ߾͹»ÁË£¬ÎªÊ²Ã´»¹ÊÇ32¸ù£¿
Íû¸÷λǰ±²Ö¸µãÃÔ½ò¡­¡­ÎªÉ¶32λϵͳ4×Ö½Ú¶ÔÆëЧÂÊ×î¸ß
[½â¾ö°ì·¨]
¼òµ¥À´Ëµ°É

±ÈÈçÕâôһ¸ö½á¹¹Ìå
struct foo {
short s;
int   n;
};

struct foo bar;
¼ÙÉèbarµÄµØÖ·ÊÇ0x12345670
Èç¹û²»°´4×Ö½Ú¶ÔÆë
ÄÇôbar.nµÄµØÖ·¾ÍÊÇ0x12345672, Ò²¾ÍÊÇÏÂÃæµÄºÚÌ岿·Ö
0x12345670 a0 a1 a2 a3
0x12345674 b0 b1 b2 b3
ΪÁËÈ¡µ½nµÄÖµ¾ÍÐèÒª·ÃÎÊÁ½´ÎÄÚ´æ,Ò»´Î·ÃÎÊ0x12345670,Ò»´Î·ÃÎÊ0x12345674
È»ºó°ÑÁ½¸öintÖµ×éºÏÔÚÒ»Æð£¬a2 a3 b0 b1

[½â¾ö°ì·¨]
++£¬ÁíÍâ4¸ö×Ö½ÚΪ4x8=32£¬ºÎÀ´30¸ùµØÖ·×ÜÏߣ¿ÔÙ˵ҲÊÇ32λµÄÊý¾Ý×ÜÏߣ¬Ö¸µÄÊÇλ¿í¶ø²»ÊǵØÖ·¡£

ÒýÓÃ:
¼òµ¥À´Ëµ°É

±ÈÈçÕâôһ¸ö½á¹¹Ìå
struct foo {
short s;
int   n;
};

struct foo bar;
¼ÙÉèbarµÄµØÖ·ÊÇ0x12345670
Èç¹û²»°´4×Ö½Ú¶ÔÆë
ÄÇôbar.nµÄµØÖ·¾ÍÊÇ0x12345672, Ò²¾ÍÊÇÏÂÃæµÄºÚÌ岿·Ö
0x12345670 a0 a1 a2 a3
0x12345674 b0 b1 b¡­¡­

[½â¾ö°ì·¨]
²¢²»ÊDZØÐ룬¶øÊÇ¶ÔÆëÁËËٶȱȽϿì
Õâ¸öÓ¦¸ÃÊÇcpuÉè¼ÆÊ±¾ö¶¨µÄ£¬±ÈÈç¶ÔÆëÁË¿ÉÒÔÒ»´ÎÈ¡³ö4¸ö×Ö½Ú£¬Èç¹ûû¶ÔÆëÐèҪȡÁ½´Î£¬ÕâÑùËٶȾÍÂýÁË
ÁíÍâÕâ¸ö²¢²»ÄܼõÉÙµØÖ·×ÜÏ߸ùÊý£¬ÒòΪ»¹ÊÇÓÐÈ¡µ¥Ò»Êý¾ÝµÄÐèÇó

ÈȵãÅÅÐÐ