ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

C++±ÊÊÔÌâС¼¯ºÏ-»ªÎª(Îå)
2011-04-17 19:12:27 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:6881´Î
Tags£ºÊÔÌâ ¼¯ºÏ »ªÎª
¡¡ 
¡¡¡¡ void¡¡*malloc£¨size_t¡¡size£©,¡¡ 
¡¡¡¡ size_t¡¡fread(void¡¡*¡¡ptr,size_t¡¡size,size_t¡¡nmemb,FILE¡¡*¡¡stream)¡£¡¡ 
¡¡¡¡ 2¡¢sizeofµÄÁíÒ»¸öµÄÖ÷ÒªÓÃ;ÊǼÆËãÊý×éÖÐÔªËصĸöÊý¡£ÀýÈ磺¡¡ 
¡¡¡¡ void¡¡*¡¡memset£¨void¡¡*¡¡s,int¡¡c,sizeof(s)£©¡£¡¡ 
Áù¡¢½¨Òé¡¡ 
¡¡¡¡ÓÉÓÚ²Ù×÷ÊýµÄ×Ö½ÚÊýÔÚʵÏÖʱ¿ÉÄܳöÏֱ仯£¬½¨ÒéÔÚÉæ¼°µ½²Ù×÷Êý×Ö½Ú´óСʱÓÃsizeofÀ´´úÌæ³£Á¿¼ÆËã¡£ 
=============================================================
±¾ÎÄÖ÷Òª°üÀ¨¶þ¸ö²¿·Ö£¬µÚÒ»²¿·ÖÖصã½éÉÜÔÚVCÖУ¬ÔõôÑù²ÉÓÃsizeofÀ´Çó½á¹¹µÄ´óС£¬ÒÔ¼°ÈÝÒ׳öÏÖµÄÎÊÌ⣬²¢¸ø³ö½â¾öÎÊÌâµÄ·½·¨£¬µÚ¶þ²¿·Ö×ܽá³öVCÖÐsizeofµÄÖ÷ÒªÓ÷¨¡£ 
1¡¢ sizeofÓ¦ÓÃÔڽṹÉϵÄÇé¿ö 
Çë¿´ÏÂÃæµÄ½á¹¹£º 
struct MyStruct 

double dda1; 
char dda; 
int type 
}; 
¶Ô½á¹¹MyStruct²ÉÓÃsizeof»á³öÏÖʲô½á¹ûÄØ£¿sizeof(MyStruct)Ϊ¶àÉÙÄØ£¿Ò²ÐíÄã»áÕâÑùÇ󣺠
sizeof(MyStruct)=sizeof(double)+sizeof(char)+sizeof(int)=13 
µ«Êǵ±ÔÚVCÖвâÊÔÉÏÃæ½á¹¹µÄ´óСʱ£¬Äã»á·¢ÏÖsizeof(MyStruct)Ϊ16¡£ÄãÖªµÀΪʲôÔÚVCÖлáµÃ³öÕâÑùÒ»¸ö½á¹ûÂ𣿠
Æäʵ£¬ÕâÊÇVC¶Ô±äÁ¿´æ´¢µÄÒ»¸öÌØÊâ´¦Àí¡£ÎªÁËÌá¸ßCPUµÄ´æ´¢Ëٶȣ¬VC¶ÔһЩ±äÁ¿µÄÆðʼµØÖ·×öÁË"¶ÔÆë"´¦Àí¡£ÔÚĬÈÏÇé¿öÏ£¬VC¹æ¶¨¸÷³ÉÔ±±äÁ¿´æ·ÅµÄÆðʼµØÖ·Ïà¶ÔÓڽṹµÄÆðʼµØÖ·µÄÆ«ÒÆÁ¿±ØÐëΪ¸Ã±äÁ¿µÄÀàÐÍËùÕ¼ÓõÄ×Ö½ÚÊýµÄ±¶Êý¡£ÏÂÃæÁгö³£ÓÃÀàÐ͵ĶÔÆ뷽ʽ(vc6.0,32λϵͳ)¡£ 
ÀàÐÍ 
¶ÔÆ뷽ʽ£¨±äÁ¿´æ·ÅµÄÆðʼµØÖ·Ïà¶ÔÓڽṹµÄÆðʼµØÖ·µÄÆ«ÒÆÁ¿£© 
Char 
Æ«ÒÆÁ¿±ØÐëΪsizeof(char)¼´1µÄ±¶Êý 
int 
Æ«ÒÆÁ¿±ØÐëΪsizeof(int)¼´4µÄ±¶Êý 
float 
Æ«ÒÆÁ¿±ØÐëΪsizeof(float)¼´4µÄ±¶Êý 
double 
Æ«ÒÆÁ¿±ØÐëΪsizeof(double)¼´8µÄ±¶Êý 
Short 
Æ«ÒÆÁ¿±ØÐëΪsizeof(short)¼´2µÄ±¶Êý 
¸÷³ÉÔ±±äÁ¿ÔÚ´æ·ÅµÄʱºò¸ù¾ÝÔڽṹÖгöÏÖµÄ˳ÐòÒÀ´ÎÉêÇë¿Õ¼ä£¬Í¬Ê±°´ÕÕÉÏÃæµÄ¶ÔÆ뷽ʽµ÷ÕûλÖ㬿ÕȱµÄ×Ö½ÚVC»á×Ô¶¯Ìî³ä¡£Í¬Ê±VCΪÁËÈ·±£½á¹¹µÄ´óСΪ½á¹¹µÄ×ֽڱ߽çÊý£¨¼´¸Ã½á¹¹ÖÐÕ¼ÓÃ×î´ó¿Õ¼äµÄÀàÐÍËùÕ¼ÓõÄ×Ö½ÚÊý£©µÄ±¶Êý£¬ËùÒÔÔÚΪ×îºóÒ»¸ö³ÉÔ±±äÁ¿ÉêÇë¿Õ¼äºó£¬»¹»á¸ù¾ÝÐèÒª×Ô¶¯Ìî³ä¿ÕȱµÄ×Ö½Ú¡£ 
ÏÂÃæÓÃÇ°ÃæµÄÀý×ÓÀ´ËµÃ÷VCµ½µ×ÔõôÑùÀ´´æ·Å½á¹¹µÄ¡£ 
struct MyStruct 

double dda1; 
char dda; 
int type 
}£» 
ΪÉÏÃæµÄ½á¹¹·ÖÅä¿Õ¼äµÄʱºò£¬VC¸ù¾Ý³ÉÔ±±äÁ¿³öÏÖµÄ˳ÐòºÍ¶ÔÆ뷽ʽ£¬ÏÈΪµÚÒ»¸ö³ÉÔ±dda1·ÖÅä¿Õ¼ä£¬ÆäÆðʼµØÖ·¸ú½á¹¹µÄÆðʼµØÖ·Ïàͬ£¨¸ÕºÃÆ«ÒÆÁ¿0¸ÕºÃΪsizeof(double)µÄ±¶Êý£©£¬¸Ã³ÉÔ±±äÁ¿Õ¼ÓÃsizeof(double)=8¸ö×Ö½Ú£»½ÓÏÂÀ´ÎªµÚ¶þ¸ö³ÉÔ±dda·ÖÅä¿Õ¼ä£¬ÕâʱÏÂÒ»¸ö¿ÉÒÔ·ÖÅäµÄµØÖ·¶ÔÓڽṹµÄÆðʼµØÖ·µÄÆ«ÒÆÁ¿Îª8£¬ÊÇsizeof(char)µÄ±¶Êý£¬ËùÒÔ°Ñdda´æ·ÅÔÚÆ«ÒÆÁ¿Îª8µÄµØ·½Âú×ã¶ÔÆ뷽ʽ£¬¸Ã³ÉÔ±±äÁ¿Õ¼Óà sizeof(char)=1¸ö×Ö½Ú£»½ÓÏÂÀ´ÎªµÚÈý¸ö³ÉÔ±type·ÖÅä¿Õ¼ä£¬ÕâʱÏÂÒ»¸ö¿ÉÒÔ·ÖÅäµÄµØÖ·¶ÔÓڽṹµÄÆðʼµØÖ·µÄÆ«ÒÆÁ¿Îª9£¬²»ÊÇsizeof (int)=4µÄ±¶Êý£¬ÎªÁËÂú×ã¶ÔÆ뷽ʽ¶ÔÆ«ÒÆÁ¿µÄÔ¼ÊøÎÊÌ⣬VC×Ô¶¯Ìî³ä3¸ö×Ö½Ú£¨ÕâÈý¸ö×Ö½ÚûÓзÅʲô¶«Î÷£©£¬ÕâʱÏÂÒ»¸ö¿ÉÒÔ·ÖÅäµÄµØÖ·¶ÔÓڽṹµÄÆðʼµØÖ·µÄÆ«ÒÆÁ¿Îª12£¬¸ÕºÃÊÇsizeof(int)=4µÄ±¶Êý£¬ËùÒÔ°Ñtype´æ·ÅÔÚÆ«ÒÆÁ¿Îª12µÄµØ·½£¬¸Ã³ÉÔ±±äÁ¿Õ¼ÓÃsizeof(int)=4¸ö×Ö½Ú£»ÕâʱÕû¸ö½á¹¹µÄ³ÉÔ±±äÁ¿ÒѾ­¶¼·ÖÅäÁ˿ռ䣬×ܵÄÕ¼ÓõĿռä´óСΪ£º8+1+3+4=16£¬¸ÕºÃΪ½á¹¹µÄ×ֽڱ߽çÊý£¨¼´½á¹¹ÖÐÕ¼ÓÃ×î´ó¿Õ¼äµÄÀàÐÍËùÕ¼ÓõÄ×Ö½ÚÊýsizeof(double)=8£©µÄ±¶Êý£¬ËùÒÔûÓпÕȱµÄ×Ö½ÚÐèÒªÌî³ä¡£ËùÒÔÕû¸ö½á¹¹µÄ´óСΪ£ºsizeof(MyStruct)=8+1+ 3+4=16£¬ÆäÖÐÓÐ3¸ö×Ö½ÚÊÇVC×Ô¶¯Ìî³äµÄ£¬Ã»ÓзÅÈκÎÓÐÒâÒåµÄ¶«Î÷¡£ 
ÏÂÃæÔپٸöÀý×Ó£¬½»»»Ò»ÏÂÉÏÃæµÄMyStructµÄ³ÉÔ±±äÁ¿µÄλÖã¬Ê¹Ëü±ä³ÉÏÂÃæµÄÇé¿ö£º 
struct MyStruct 

char dda; 
double dda1; 
int type 
}£» 
Õâ¸ö½á¹¹Õ¼ÓõĿռäΪ¶à´óÄØ£¿ÔÚVC6.0»·¾³Ï£¬¿ÉÒԵõ½sizeof(MyStruc)Ϊ24¡£½áºÏÉÏÃæÌáµ½µÄ·ÖÅä¿Õ¼äµÄһЩԭÔò£¬·ÖÎöÏÂVCÔõôÑùΪÉÏÃæµÄ½á¹¹·ÖÅä¿Õ¼äµÄ¡££¨¼òµ¥ËµÃ÷£© 
struct MyStruct 

char dda;//Æ«ÒÆÁ¿Îª0£¬Âú×ã¶ÔÆ뷽ʽ£¬ddaÕ¼ÓÃ1¸ö×Ö½Ú£» 
double dda1;//ÏÂÒ»¸ö¿ÉÓõĵØÖ·µÄÆ«ÒÆÁ¿Îª1£¬²»ÊÇsizeof(double)=8 
//µÄ±¶Êý£¬ÐèÒª²¹×ã7¸ö×Ö½Ú²ÅÄÜʹƫÒÆÁ¿±äΪ8£¨Âú×ã¶ÔÆë 
//·½Ê½£©£¬Òò´ËVC×Ô¶¯Ìî³ä7¸ö×Ö½Ú£¬dda1´æ·ÅÔÚÆ«ÒÆÁ¿Îª8 
//µÄµØÖ·ÉÏ£¬ËüÕ¼ÓÃ8¸ö×Ö½Ú¡£ 
int type£»//ÏÂÒ»¸ö¿ÉÓõĵØÖ·µÄÆ«ÒÆÁ¿Îª16£¬ÊÇsizeof(int)=4µÄ±¶ 
//Êý£¬Âú×ãintµÄ¶ÔÆ뷽ʽ£¬ËùÒÔ²»ÐèÒªVC×Ô¶¯Ìî³ä£¬type´æ 
//·ÅÔÚÆ«ÒÆÁ¿Îª16µÄµØÖ·ÉÏ£¬ËüÕ¼ÓÃ4¸ö×Ö½Ú¡£ 
}£»//ËùÓгÉÔ±±äÁ¿¶¼·ÖÅäÁ˿ռ䣬¿Õ¼ä×ܵĴóСΪ1+7+8+4=20£¬²»Êǽṹ 
//µÄ½Ú±ß½çÊý£¨¼´½á¹¹ÖÐÕ¼ÓÃ×î´ó¿Õ¼äµÄÀàÐÍËùÕ¼ÓõÄ×Ö½ÚÊýsizeof 
//(double)=8£©µÄ±¶Êý£¬ËùÒÔÐèÒªÌî³ä4¸ö×Ö½Ú£¬ÒÔÂú×ã½á¹¹µÄ´óСΪ 
//sizeof(double)=8µÄ±¶Êý¡£ 
ËùÒԸýṹ×ܵĴóСΪ£ºsizeof(MyStruc)Ϊ1+7+8+4+4=24¡£ÆäÖÐ×ܵÄÓÐ7+4=11¸ö×Ö½ÚÊÇVC×Ô¶¯Ìî³äµÄ£¬Ã»ÓзÅÈκÎÓÐÒâÒåµÄ¶«Î÷¡£ 
VC¶Ô½á¹¹µÄ´æ´¢µÄÌØÊâ´¦ÀíȷʵÌá¸ßCPU´æ´¢±äÁ¿µÄËٶȣ¬µ«ÊÇÓÐʱºòÒ²´øÀ´ÁËһЩÂé·³£¬ÎÒÃÇÒ²ÆÁ±Îµô±äÁ¿Ä¬ÈϵĶÔÆ뷽ʽ£¬×Ô¼º¿ÉÒÔÉ趨±äÁ¿µÄ¶ÔÆ뷽ʽ¡£ 
VC ÖÐÌṩÁË#pragma pack(n)À´É趨±äÁ¿ÒÔn×Ö½Ú¶ÔÆ뷽ʽ¡£n×Ö½Ú¶ÔÆë¾ÍÊÇ˵±äÁ¿´æ·ÅµÄÆðʼµØÖ·µÄÆ«ÒÆÁ¿ÓÐÁ½ÖÖÇé¿ö£ºµÚÒ»¡¢Èç¹ûn´óÓÚµÈÓڸñäÁ¿ËùÕ¼ÓõÄ×Ö½ÚÊý£¬ÄÇôƫÒÆÁ¿±ØÐëÂú×ãĬÈϵĶÔÆ뷽ʽ£¬µÚ¶þ¡¢Èç¹ûnСÓڸñäÁ¿µÄÀàÐÍËùÕ¼ÓõÄ×Ö½ÚÊý£¬ÄÇôƫÒÆÁ¿ÎªnµÄ±¶Êý£¬²»ÓÃÂú×ãĬÈϵĶÔÆ뷽ʽ¡£½á¹¹µÄ×Ü´óСҲÓиöÔ¼ÊøÌõ¼þ£¬·ÖÏÂÃæÁ½ÖÖÇé¿ö£ºÈç¹ûn
Ê×Ò³ ÉÏÒ»Ò³ 2 3 4 5 6 7 ÏÂÒ»Ò³ βҳ 5/7/7
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºC++ÃæÊÔÎÊÌâ-»ªÎª ÏÂһƪ£ºC++±ÊÊÔÊÔÌâ-»ªÎª

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿