Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

C/C++ÖеĽṹÌå¶ÔÆëÎÊÌâ(ÄÚ´æ¶ÔÆë)

ÓÉÓÚ³ÌÐòÔËÐÐʱռÓõÄÄÚ´æ¹ý´ó£¬ËùÒÔÏë°ì·¨¸ø³ÌÐòÊÝÉí¡£
ÔÚµ÷ÊÔÖз¢ÏֽṹÌåÕ¼ÓõÄsize¾¹È»ºÍÔ¤ÏëµÄ²»Ò»Ñù£¬Ô­À´……
¿´¿´ÏÂÃæ½²µÄ°É£¬¿Ï¶¨»á²»Í÷´Ë¿´Å¶£¡
1,±ÈÈç:
struct{
short a1;
short a2;
short a3;
}A;
struct{
long a1;
short a2;
}B;
sizeof(A)=6, sizeof(B)=8,Ϊʲô£¿
×¢£ºsizeof(short)=2,sizeof(long)=4
ÒòΪ:“³ÉÔ±¶ÔÆëÓÐÒ»¸öÖØÒªµÄÌõ¼þ,¼´Ã¿¸ö³ÉÔ±°´×Ô¼ºµÄ·½Ê½¶ÔÆë.Æä¶ÔÆëµÄ¹æÔòÊÇ,ÿ¸ö³ÉÔ±°´ÆäÀàÐÍµÄ¶ÔÆë²ÎÊý(ͨ³£ÊÇÕâ¸öÀàÐ͵ĴóС)ºÍÖ¸¶¨¶ÔÆë²ÎÊý(ÕâÀïĬÈÏÊÇ8×Ö½Ú)ÖнÏСµÄÒ»¸ö¶ÔÆë.²¢ÇҽṹµÄ³¤¶È±ØÐëΪËùÓùýµÄËùÓÐ¶ÔÆë²ÎÊýµÄÕûÊý±¶,²»¹»¾Í²¹¿Õ×Ö½Ú.”(ÒýÓÃ)
½á¹¹ÌåAÖÐÓÐ3¸öshortÀàÐͱäÁ¿£¬¸÷×ÔÒÔ2×Ö½Ú¶ÔÆë£¬½á¹¹Ìå¶ÔÆë²ÎÊý°´Ä¬ÈϵÄ8×Ö½Ú¶ÔÆë£¬Ôòa1,a2,a3¶¼È¡2×Ö½Ú¶ÔÆë£¬Ôòsizeof(A)Ϊ6£¬ÆäÒ²ÊÇ2µÄÕûÊý±¶£»
BÖÐa1Ϊ4×Ö½Ú¶ÔÆë£¬a2Ϊ2×Ö½Ú¶ÔÆë£¬½á¹¹ÌåĬÈÏ¶ÔÆë²ÎÊýΪ8£¬Ôòa1È¡4×Ö½Ú¶ÔÆë£¬a2È¡2×Ö½Ú¶ÔÆë£¬½á¹¹Ìå´óС6×Ö½Ú£¬6²»Îª4µÄÕûÊý±¶£¬²¹¿Õ×Ö½Ú£¬Ôöµ½8ʱ£¬·ûºÏËùÓÐÌõ¼þ£¬Ôòsizeof(B)Ϊ8£»
¿ÉÒÔÉèÖÃ³É¶ÔÆëµÄ
#pragma pack(1)
#pragma pack(push)
#pragma pack(1)
struct{
short a1;
short a2;
short a3;
}A;
struct{
long a1;
short a2;
}B;
#pragma pack(pop)
½á¹ûΪsizeof( A)=6,sizeof( B)=6
************************
2,ÓÖÈç:
#pragma pack(8)
struct S1{
char a;
long b;
};
struct S2 {
char c;
struct S1 d;
long long e;
};
#pragma pack()
sizeof(S2)½á¹ûΪ24.
³ÉÔ±¶ÔÆëÓÐÒ»¸öÖØÒªµÄÌõ¼þ,¼´Ã¿¸ö³ÉÔ±·Ö±ð¶ÔÆë.¼´Ã¿¸ö³ÉÔ±°´×Ô¼ºµÄ·½Ê½¶ÔÆë.
Ò²¾ÍÊÇ˵ÉÏÃæËäȻָ¶¨Á˰´8×Ö½Ú¶ÔÆë,µ«²¢²»ÊÇËùÓеijÉÔ±¶¼ÊÇÒÔ8×Ö½Ú¶ÔÆë.Æä¶ÔÆëµÄ¹æÔòÊÇ,ÿ¸ö³ÉÔ±°´ÆäÀàÐÍµÄ¶ÔÆë²ÎÊý(ͨ³£ÊÇÕâ¸öÀàÐ͵ĴóС)ºÍÖ¸¶¨¶ÔÆë²ÎÊý(ÕâÀïÊÇ8×Ö½Ú)ÖнÏСµÄÒ»¸ö¶ÔÆë.²¢ÇҽṹµÄ³¤¶È±ØÐëΪËùÓùýµÄËùÓÐ¶ÔÆë²ÎÊýµÄÕûÊý±¶,²»¹»¾Í²¹¿Õ×Ö½Ú.
S1ÖÐ,³ÉÔ±aÊÇ1×Ö½ÚĬÈϰ´1×Ö½Ú¶ÔÆë,Ö¸¶¨¶ÔÆë²ÎÊýΪ8,ÕâÁ½¸öÖµÖÐÈ¡1,a°´1×Ö½Ú¶ÔÆë;³ÉÔ±bÊÇ4¸ö×Ö½Ú,ĬÈÏÊǰ´4×Ö½Ú¶ÔÆë,Õâʱ¾Í°´4×Ö½Ú¶ÔÆë,ËùÒÔsizeof(S1)Ó¦¸ÃΪ8;
S2 ÖÐ,cºÍS1ÖеÄaÒ»Ñù,°´1×Ö½Ú¶ÔÆë,¶ød ÊǸö½á¹¹,ËüÊÇ8¸ö×Ö½Ú,Ëü°´Ê²Ã´¶ÔÆëÄØ?¶ÔÓڽṹÀ´Ëµ,ËüµÄĬÈÏ¶ÔÆë·½Ê½¾ÍÊÇËüµÄËùÓгÉԱʹÓÃµÄ¶ÔÆë²ÎÊýÖÐ×î´óµÄÒ»¸ö,S1µÄ¾ÍÊÇ4.ËùÒÔ,³ÉÔ±d¾ÍÊǰ´4×Ö½Ú¶ÔÆë.³ÉÔ±eÊÇ8¸ö×Ö½Ú,ËüÊÇĬÈϰ´8×Ö½Ú¶ÔÆë,ºÍÖ¸¶¨µÄÒ»Ñù,ËùÒÔËü¶Ôµ½8×ֽڵı߽çÉÏ,Õâʱ, ÒѾ­Ê¹


Ïà¹ØÎĵµ£º

ÓÃCÓïÑÔÀ©Õ¹PythonµÄ¹¦ÄÜ

µ±½ñÓÐÐí¶àÃâ·ÑµÄ RDBMS£¨Relational Database Management
System£¬¹ØÏµÊý¾Ý¿â¹ÜÀíϵͳ£©£¬ÆäÖÐһЩÊÇ¿ª·ÅÔ´ÂëÈí¼þ£¬ÁíһЩÊÇÉÌÒµ³§ÉÌÌṩµÄÃâ·Ñ²úÆ·¡£Èç¹ûÄúÕýÔÚʹÓà C/C++¡¢Java™¡¢.NET
»ò PHP
¿ª·¢Ó¦ÓóÌÐò£¬ÏëѰÕÒÒ»ÖÖ¿É¿¿µÄÊý¾Ý·þÎñÆ÷£¬Ï£ÍûËüÖ§³ÖÏȽøµÄ¼¼Êõ¡¢¾ßÓв»¶ÏÀ©´óµÄ¿ª·¢ÈËÔ±ÉçÇø²¢ÒѾ­²¿ÊðÔÚÐí¶à¹Ø¼ ......

Delphi Óë C/C++ Êý¾ÝÀàÐͶÔÕÕ±í

Delphi Óë C/C++ Êý¾ÝÀàÐͶÔÕÕ±í
DelphiÊý¾ÝÀàÐÍC/C++
ShorInt
8λÓзûºÅÕûÊý
char
Byte
8λÎÞ·ûºÅÕûÊý
BYTE,unsigned short
SmallInt
16λÓзûºÅÕûÊý
short
Word
16λÎÞ·ûºÅÕûÊý
unsigned short
Integer,LongInt
32λÓзûºÅÕûÊý
int,long
Cardinal,LongWord/DWORD
32λÎÞ·ûºÅÕûÊý
unsigned long
Int6 ......

CÓïÑÔº¯ÊýµÄ³ö¿Ú:returnÓï¾ä£¨¸ßÖÊÁ¿c/c++±à³ÌÖ¸ÄÏ£©


CÓïÑÔº¯ÊýµÄ³ö¿Ú:returnÓï¾ä£¨¸ßÖÊÁ¿c/c++±à³ÌÖ¸ÄÏ£© ÊÕ²Ø
½ñÌì¿´µ½ÁËһƪ¹ØÓÚc/c++ÓïÑÔÖÐ,¶ÔÓÚº¯Êý³ö¿Ú´¦:returnÓï¾äµÄÕýÈ·ÐÔºÍЧÂÊÐԵļì²éÎÊÌ⡣ƽʱÎÒÃǶ¼²»Ì«¿´ÖØreturnÓï¾äµÄ£¬ÈÏΪËü¼òµ¥£¬²»ÊǺÜÖØÒª£¬Æäʵ²»È»£¬returnÓï¾äÒªÊÇдµÄ²»ºÃ£¬ºÜÈÝÒ×µ¼ÖÂЧÂʵÍÏ£¬ÉõÖÁ»á³ö´í£¡ÌرðÊÇÔÚ´¦ÀíÖ¸Õëʱ¡£
ÏÂÃæ¿´¿´Òª ......

static C C++ÓïÒå

´æ´¢ÆÚstorage duration(extent)£¬ ָΪ¶ÔÏóÅäÖõÄÄÚ´æµÄ´æ»îÆÚ£¬±ÈÈçlocal extent
Éú´æ¿Õ¼äscope£¬Ö¸¶ÔÏóÔÚ³ÌÐòÄڵĴæ»îÇøÓò£¬¼´¿É±»·ÃÎʵķ¶Î§£¬±ÈÈçfile scope, static scope, local scope
C
local static object
 º¯ÊýÄÚ²¿µÄobject£¬¾ßÓÐlocal scope£¬µ«ÊÇÿ´Îº¯Êý±»µ÷Óúó¸Ã¶ÔÏóµÄÄÚ´æ²»ÇåÀí£¬µ½Ï´ε÷Óû¹±£ ......

C/C++ÖÐΪ¶þάÊý×é·ÖÅäÄÚ´æ

½ñÌì²Î¼Ó±ÊÊÔ,ÆäÖÐÓÐÁ½ÌâÊÇ·ÖÅäÄÚ´æµÄ,µÚÒ»ÌâÊǶ¯Ì¬·ÖÅäÒ»¸öһάÊý×é,µÚ¶þ¸öÌâÊǶ¯Ì¬·ÖÅäÒ»¸ö¶þάÊý×é.µÚÒ»ÌâºÍµÚ¶þÌâÎÒ·Ö±ðÊÇÕâÑùдµÄ:
/*µÚÒ»Ìâ*/
p=(float*)malloc(sizeof(float[M]));
/*µÚ¶þÌâ*/
p=(float*)malloc(sizeof(int[M][N]));
½á¹û˵ÎÒµÚ¶þÌâ´íÁË,ÎÒ»¹²»Ã÷°×´íÄÄÁË,ÎÒÓÖÎÊд³ÉM*N¶Ô²»,½á¹û»¹ÊÇ˵²»¶Ô.¸Õ² ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ