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×Ö½Ú¶ÔÆë,ËùÒÔ
Ïà¹ØÎĵµ£º
Boss˵£¬Òª¿´OpenGL£¬¿´ÁË¿ìÒ»¸öÔ£¬×ÜËã³öÁ˸öÏñÑùµÄ¶«Î÷£¬ÓÃCдÁ˸ö3DÃÔ¹¬£¬
ËäȻֻÓÐ350ÐÐ
´úÂ룬²»¹ý±ßѧ±ßд£¬×ã×ãдÁËÒ»ÖÜʱ¼ä£¬»¹ÊÇСÓгɾ͸е쬻î»î»î£¡
&n ......
ÕâÆªÎÄÕºܳ¤£¬×ªÔØÏÂÀ´¹©×Ô¼ºÂýÂýѧϰ¡£
±à³ÌÐÞÑø £¨×÷Õߣº³Â𩣩
————
ʲôÊǺõijÌÐòÔ±£¿ÊDz»ÊǶ®µÃºÜ¶à¼¼Êõϸ½Ú£¿»¹ÊǶ®µ×²ã±à³Ì£¿»¹ÊDZà³ÌËٶȱȽϿ죿
ÎÒ¾õµÃ¶¼²»ÊÇ¡£¶ÔÓÚһЩ¼¼Êõϸ½ÚÀ´ËµºÍµ×²ãµÄ¼¼Êõ£¬Ö»Òª¿´°ïÖú£¬²é×ÊÁϾÍÄÜÕÒµ½£¬¶Ô
ÓÚËٶȿ죬ֻҪ±àµÃ¶àÒ²¾ÍÊìÄÜÉúÇÉÁË¡ ......
ÆäʵVIMÒ²ÄܰѱàÒë µ÷ÊÔ¼¯³ÉÔÚÒ»Æð£¬ÏñÊÇÒ»¸öIDEÒ»Ñù¡£
Ê×ÏÈÏÖÔÚVIMµÄÔ´Â룬ÒòΪҪ¼¯³Éµ÷ÊÔ»·¾³µÄ»°ÐèÒªÖØÐ±àÒëVIM²ÅÐУ¬ËùÒÔÎÒÃDz»ÈçÖØÐ°²×°Ò»¸ö¡£
VIMµÄÏÖÔÚµØÖ·£º
http://www.vim.org/sources.php
È»ºóÏÂÔØVIMGDB£¬ÕâÊÇvimµÄ¼¯³Éµ÷ÊÔ»·¾³µÄÒ»¸öÖØÒª²å¼þ³ÌÐò¡£
µØÖ·£ºhttp://sourceforge.net/projects/clewn/files ......
À´×Ô£ºhttp://zhangjunhd.blog.51cto.com/113473/100299
1.¶Áд×Ö·ûº¯Êýputc()Óëgetc()
ÕâÁ½¸öº¯ÊýÀàËÆÓÚputchar()Óëgetchar()º¯Êý¡£¼ÙÉèfpÊÇÒ»¸öFILEÖ¸Õ룬chÊÇÒ»¸ö×Ö·û±äÁ¿£¬
ch = getc(fp);// ch = getchar();
putc(ch,fp);// putchar(ch);
½«ÎļþÄÚÈÝ(°´×Ö·û)Êä³öµ½±ê×¼Êä³öµÄCʵÏÖ£º
#include <stdio.h ......
C¡¢´«Í³ C++
#include <assert.h>¡¡¡¡¡¡¡¡
//É趨²åÈëµã
#include <ctype.h>¡¡¡¡¡¡¡¡
//×Ö·û´¦Àí
#include <errno.h>¡¡¡¡¡¡¡¡
//¶¨Òå´íÎóÂë
#include <float.h>¡¡¡¡¡¡¡¡
//¸¡µãÊý´¦Àí
#include <fstream.h>¡¡¡¡¡¡
//ÎļþÊäÈ룯Êä³ö
#include <iomanip.h>¡¡ ......