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

C/C++½á¹¹Ìå×Ö½Ú¶ÔÆë


[×¢]£º×î½üÔÚ×öUVCÃèÊö·ûµÄ±à¼­¹¤¾ß£¬Óõ½ºÜ¶àµÄ½á¹¹£¬ÎªÁË·½±ã°Ñ½á¹¹Ìåд³ÉbinÎļþ£¬ÐèÒª°Ñ½á¹¹ÌåÖÐÌî³äµÄ×Ö½ÚÈ¥µô£¬ÔÚÍøÉÏËÑË÷µÃµ½ÕâƪÎÄÕ£¬¸Ð¾õͦºÃµÄ£¬×ª¹ýÀ´×ö¸ö¼ÍÄî¡£
½á¹¹Ìå(struct)µÄsizeofÖµ£¬²¢²»ÊǼòµ¥µÄ½«ÆäÖи÷ÔªËØËùÕ¼×Ö½ÚÏà¼Ó£¬¶øÊÇÒª¿¼Âǵ½´æ´¢¿Õ¼äµÄ×Ö½Ú¶ÔÆëÎÊÌâ¡£ÏÈ¿´ÏÂÃ涨ÒåµÄÁ½¸ö½á¹¹Ìå.
struct
{
    char a;
    short b;
    char c;
}S1;
struct
{
    char a;
    char b;
    short c;
}S2;
·Ö±ðÓóÌÐò²âÊԵóösizeof(S1)=6 , sizeof(S2)=4
¿É¼û£¬ËäÈ»Á½¸ö½á¹¹ÌåËùº¬µÄÔªËØÏàͬ£¬µ«ÒòΪÆäÖдæ·ÅµÄÔªËØÀàÐÍ˳Ðò²»Ò»Ñù£¬ËùÕ¼×Ö½ÚÒ²³öÏÖ²îÒì¡£Õâ¾ÍÊÇ×Ö½Ú¶ÔÆëÔ­Òò¡£Í¨¹ý×Ö½Ú¶ÔÆ룬ÓÐÖúÓÚ¼Ó¿ì¼ÆËã»úµÄÈ¡ÊýËٶȣ¬·ñÔò¾ÍµÃ¶à»¨Ö¸ÁîÖÜÆÚ¡£
×Ö½Ú¶ÔÆëÔ­Ôò
½á¹¹ÌåĬÈϵÄ×Ö½Ú¶ÔÆëÒ»°ãÂú×ãÈý¸ö×¼Ôò£º
1) ½á¹¹Ìå±äÁ¿µÄÊ×µØÖ·Äܹ»±»Æä×î¿í»ù±¾ÀàÐͳÉÔ±µÄ´óСËùÕû³ý£»
2) ½á¹¹Ìåÿ¸ö³ÉÔ±Ïà¶ÔÓڽṹÌåÊ×µØÖ·µÄÆ«ÒÆÁ¿£¨offset£©¶¼ÊdzÉÔ±×ÔÉí´óСµÄÕûÊý±¶£¬ÈçÓÐÐèÒª±àÒëÆ÷»áÔÚ³ÉÔ±Ö®¼ä¼ÓÉÏÌî³ä×Ö½Ú£¨internal adding£©£»
3) ½á¹¹ÌåµÄ×Ü´óСΪ½á¹¹Ìå×î¿í»ù±¾ÀàÐͳÉÔ±´óСµÄÕûÊý±¶£¬ÈçÓÐÐèÒª±àÒëÆ÷»áÔÚ×îÄ©Ò»¸ö³ÉÔ±Ö®ºó¼ÓÉÏÌî³ä×Ö½Ú£¨trailing padding£©¡£
ͨ¹ýÕâÈý¸öÔ­Ôò£¬¾Í²»ÄÑÀí½âÉÏÃæÁ½¸östructµÄ²îÒìÁË.
¶ÔÓÚstruct S1, ΪÁËʹshort±äÁ¿Âú×ã×Ö½Ú¶ÔÆä×¼Ôò(2), ¼´Æä´æ´¢Î»ÖÃÏà¶ÔÓڽṹÌåÊ×µØÖ·µÄoffsetÊÇ×ÔÉí´óС(shortÕ¼2¸ö×Ö½Ú)µÄÕûÊý±¶£¬±ØÐëÔÚ×Ö½ÚaºóÃæÌî³äÒ»¸ö×Ö½ÚÒÔ¶ÔÆ룻ÔÙÓÉ×¼Ôò(3),ΪÁË Âú×ã½á¹¹Ìå×Ü´óСΪshort´óСµÄÕûÊý±¶£¬±ØÐëÔÙÔÚcºóÃæÌî³äÒ»¸ö×Ö½Ú¡£
¶ÔÓÚstruct S2, È´²»±ØÈçÉÏËùÊöµÄÌî³ä×Ö½Ú£¬ÒòΪÆäÖ±½Ó˳Ðò´æ´¢ÒѾ­Âú×ãÁ˶ÔÆë×¼Ôò¡£
Èç¹û½«ÉÏÃæÁ½¸ö½á¹¹ÌåÖеÄshort¶¼¸ÄΪint(Õ¼4¸ö×Ö½Ú), ÄÇô»áÔõôÑùÄØ£¿ ³ÌÐòµÃ³ösizeof(S1)=12, sizeof(S2)=8
ÀûÓÃÉÏÃæµÄ×¼Ôò£¬Ò²²»ÄѼÆËãµÃ³öÕâÑùµÄ½á¹û¡£S1ÖÐÔÚaºóÃæÌî³ä3¸ö×Ö½Ú¡¢ÔÚcºóÃæÌî³ä3¸ö×Ö½Ú£¬ÕâÑùÒ»¹²12¸ö×Ö½Ú£»S2ÖÐÔÚa¡¢b˳Ðò´æ´¢Ö®ºóÌî³äÁ½¸ö×Ö½ÚÓÃÒÔ¶ÔÆ䣬ÕâÑùÒ»¹²¾Í8¸ö×Ö½Ú¡£
µ±È»£¬ÔÚijЩʱºòÒ²¿ÉÒÔÉèÖÃ×Ö½Ú¶ÔÆ뷽ʽ¡£Õâ¾ÍÐèҪʹÓà #pragma pack ¡£
#pragma pack(push) //ѹջ±£´æ
#pragma pack(1)// ÉèÖÃ1×Ö½Ú¶ÔÆë
struct
{
char a;
short b;
char c;
}S1;
#pragma pack(pop) // »Ö¸´ÏÈÇ°ÉèÖÃ
ÈçÉÏËùʾ£¬½«¶ÔÆ䷽ʽÉèΪ1×Ö½Ú¶ÔÆë£


Ïà¹ØÎĵµ£º

c ÓïÑÔбê×¼

ÔÚANSI±ê×¼»¯ºó£¬CÓïÑԵıê×¼ÔÚÒ»¶ÎÏ൱µÄʱ¼äÄÚ¶¼±£³Ö²»±ä£¬¾¡¹ÜC++¼ÌÐøÔڸĽø¡££¨Êµ¼ÊÉÏ£¬Normative Amendment1ÔÚ1995ÄêÒѾ­¿ª·¢ÁËÒ»¸öеÄCÓïÑÔ°æ±¾¡£µ«ÊÇÕâ¸ö°æ±¾ºÜÉÙΪÈËËùÖª¡££©±ê×¼ÔÚ90Äê´ú²Å¾­ÀúÁ˸Ľø£¬Õâ¾ÍÊÇISO9899:1999£¨1999Äê³ö°æ£©¡£Õâ¸ö°æ±¾¾ÍÊÇͨ³£Ìá¼°µÄC99¡£Ëü±»ANSIÓÚ2000ÄêÈýÔ²ÉÓá£
¡¡¡¡ÔÚC99ÖаüÀ ......

c¾­µäÁ´±í³ÌÐò

#include "stdio.h"
#include "malloc.h"
typedef int elemtype;
struct node
{
elemtype data;
struct node *next;
};
typedef struct node NODE;
NODE * creat(NODE *head)
{
NODE *p,*q;
elemtype i;
head=(NODE*)malloc(sizeof(NODE));
scanf("%d",&(head->data));
p=head;
......

¹ØÓÚdelete C/C++ Ö¸Õë

Õ»£ºº¯Êýµ÷ÓõÄʱºò£¬ÔÚÕ»Öб£´æ¾Ö²¿±äÁ¿ºÍº¯Êý²ÎÊýµÈ¡£µ±º¯Êý·µ»Øʱ£¬×Ô¶¯Çå³ýÕ»¡£
×ÔÓÉ´æ´¢Çø£ºÒ²³ÆΪ¶Ñ(heap)£¬¿ÉÒÔ¿´×÷´óÁ¿µÄÄÚ´æ¶Î¡£Í¨¹ý new ²Ù×÷·û·ÖÅäµÄÄÚ´æÔÚ¶ÑÖС£³ÌÐò½áÊø֮ǰ²»×Ô¶¯Çå³ý×ÔÓÉ´æ´¢Çø¡£ÐèÒªÓɳÌÐòÀ´¸ºÔðÊÍ·Å£¨delete£©¡£
1.
¶ÔÖ¸ÏòÕ»ÉÏÄÚ´æµÄÖ¸Õëµ÷ÓÃdelete»áµ¼Ö³ÌÐòCrash¡£
2. 
new ½ø ......

linux ϵͳÏÂʹÓÃC³ÌÐòʵÏÖʱÖӵĺ¯Êý

#include "stdio.h"
#include "math.h"
#include "time.h"
#define INTERVAL 1  ¶¨ÒåºêµÄʱ¼ä¼ä¸ôΪ1Ãë
//
void On_Time()  //ÿһÃ뼤·¢µÄʼþ
{
   printf("now=%s\n","JJK"); 
}
void Timer()  //ʱÖӵĺ¯Êý
{  time_t newclk,oldclk;
   while(1)
 &nb ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ