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

ͨ¹ý#pragma pack(n)¸Ä±äC±àÒëÆ÷µÄ×Ö½Ú¶ÔÆë·½Ê½

Ô­ÎĵØÖ·£ºhttp://blog.csdn.net/yc0188/archive/2005/02/26/303190.aspx
ÔÚCÓïÑÔÖУ¬½á¹¹ÊÇÒ»ÖÖ¸´ºÏÊý¾ÝÀàÐÍ£¬Æä¹¹³ÉÔªËØ¼È¿ÉÒÔÊÇ»ù±¾Êý¾ÝÀàÐÍ£¨Èçint¡¢long¡¢floatµÈ£©µÄ±äÁ¿£¬Ò²¿ÉÒÔÊÇһЩ¸´ºÏÊý¾ÝÀàÐÍ£¨ÈçÊý×é¡¢½á¹¹¡¢ÁªºÏµÈ£©µÄÊý¾Ýµ¥Ôª¡£ÔڽṹÖУ¬±àÒëÆ÷Ϊ½á¹¹µÄÿ¸ö³ÉÔ±°´Æä×ÔÈ»¶Ô½ç£¨alignment£©Ìõ¼þ·ÖÅä¿Õ¼ä¡£¸÷¸ö³ÉÔ±°´ÕÕËüÃDZ»ÉùÃ÷µÄ˳ÐòÔÚÄÚ´æÖÐ˳Ðò´æ´¢£¬µÚÒ»¸ö³ÉÔ±µÄµØÖ·ºÍÕû¸ö½á¹¹µÄµØÖ·Ïàͬ¡£
ÀýÈ磬ÏÂÃæµÄ½á¹¹¸÷³ÉÔ±¿Õ¼ä·ÖÅäÇé¿ö£º
struct test
{
     char x1;
     short x2;
     float x3;
     char x4;
};
½á¹¹µÄµÚÒ»¸ö³ÉÔ±x1£¬ÆäÆ«ÒÆµØÖ·Îª0£¬Õ¼¾ÝÁ˵Ú1¸ö×Ö½Ú¡£µÚ¶þ¸ö³ÉÔ±x2ΪshortÀàÐÍ£¬ÆäÆðʼµØÖ·±ØÐë2×ֽڶԽ磬Òò´Ë£¬±àÒëÆ÷ÔÚx2ºÍx1Ö®¼äÌî³äÁËÒ»¸ö¿Õ×Ö½Ú¡£½á¹¹µÄµÚÈý¸ö³ÉÔ±x3ºÍµÚËĸö³ÉÔ±x4Ç¡ºÃÂäÔÚÆä×ÔÈ»¶Ô½çµØÖ·ÉÏ£¬ÔÚËüÃÇÇ°Ãæ²»ÐèÒª¶îÍâµÄÌî³ä×Ö½Ú¡£ÔÚtest½á¹¹ÖУ¬³ÉÔ±x3ÒªÇó4×ֽڶԽ磬ÊǸýṹËùÓгÉÔ±ÖÐÒªÇóµÄ×î´ó¶Ô½çµ¥Ôª£¬Òò¶øtest½á¹¹µÄ×ÔÈ»¶Ô½çÌõ¼þΪ4×Ö½Ú£¬±àÒëÆ÷ÔÚ³ÉÔ±x4ºóÃæÌî³äÁË3¸ö¿Õ×Ö½Ú¡£Õû¸ö½á¹¹ËùÕ¼¾Ý¿Õ¼äΪ12×Ö½Ú¡£¸ü¸ÄC±àÒëÆ÷µÄȱʡ×Ö½Ú¶ÔÆë·½Ê½
ÔÚȱʡÇé¿öÏ£¬C±àÒëÆ÷Ϊÿһ¸ö±äÁ¿»òÊÇÊý¾Ýµ¥Ôª°´Æä×ÔÈ»¶Ô½çÌõ¼þ·ÖÅä¿Õ¼ä¡£Ò»°ãµØ£¬¿ÉÒÔͨ¹ýÏÂÃæµÄ·½·¨À´¸Ä±äȱʡµÄ¶Ô½çÌõ¼þ£º
· ʹÓÃαָÁî#pragma pack (n)£¬C±àÒëÆ÷½«°´ÕÕn¸ö×Ö½Ú¶ÔÆë¡£
· ʹÓÃαָÁî#pragma pack ()£¬È¡Ïû×Ô¶¨Òå×Ö½Ú¶ÔÆë·½Ê½¡£
ÁíÍ⣬»¹ÓÐÈçϵÄÒ»ÖÖ·½Ê½£º
· __attribute((aligned (n)))£¬ÈÃËù×÷ÓõĽṹ³ÉÔ±¶ÔÆëÔÚn×Ö½Ú×ÔÈ»±ß½çÉÏ¡£Èç¹û½á¹¹ÖÐÓгÉÔ±µÄ³¤¶È´óÓÚn£¬Ôò°´ÕÕ×î´ó³ÉÔ±µÄ³¤¶ÈÀ´¶ÔÆë¡£
· __attribute__ ((packed))£¬È¡Ïû½á¹¹ÔÚ±àÒë¹ý³ÌÖеÄÓÅ»¯¶ÔÆë£¬°´ÕÕʵ¼ÊÕ¼ÓÃ×Ö½ÚÊý½øÐÐ¶ÔÆë¡£
ÒÔÉϵÄn = 1, 2, 4, 8, 16... µÚÒ»ÖÖ·½Ê½½ÏΪ³£¼û¡£
Ó¦ÓÃʵÀý
¡¡¡¡ÔÚÍøÂçЭÒé±à³ÌÖУ¬¾­³£»á´¦Àí²»Í¬Ð­ÒéµÄÊý¾Ý±¨ÎÄ¡£Ò»ÖÖ·½·¨ÊÇͨ¹ýÖ¸ÕëÆ«ÒÆµÄ·½·¨À´µÃµ½¸÷ÖÖÐÅÏ¢£¬µ«ÕâÑù×ö²»½ö±à³Ì¸´ÔÓ£¬¶øÇÒÒ»µ©Ð­ÒéÓб仯£¬³ÌÐòÐÞ¸ÄÆðÀ´Ò²±È½ÏÂé·³¡£ÔÚÁ˽âÁ˱àÒëÆ÷¶Ô½á¹¹¿Õ¼äµÄ·ÖÅäÔ­ÔòÖ®ºó£¬ÎÒÃÇÍêÈ«¿ÉÒÔÀûÓÃÕâÒ»ÌØÐÔ¶¨Òå×Ô¼ºµÄЭÒé½á¹¹£¬Í¨¹ý·ÃÎʽṹµÄ³ÉÔ±À´»ñÈ¡¸÷ÖÖÐÅÏ¢¡£ÕâÑù×ö£¬²»½ö¼ò»¯Á˱à³Ì£¬¶øÇÒ¼´Ê¹Ð­Òé·¢Éú±ä»¯£¬ÎÒÃÇÒ²Ö»ÐèÐÞ¸ÄЭÒé½á¹¹µÄ¶¨Òå¼´¿É£¬ÆäËü³ÌÐòÎÞÐèÐ޸ģ¬Ê¡Ê±Ê¡Á¦¡£ÏÂÃæÒÔTCPЭÒéÊײ¿ÎªÀý


Ïà¹ØÎĵµ£º

[C/C++] °ÑÒ»¸öÕûÐÍÕûÊýת³É×Ö·û´®

ÎÊÌâÃèÊö£ºÐ´Ò»¸öº¯Êý£¬½ÓÊÜÒ»¸öÕûÊý£¨¼Ù¶¨ÓÃint±íʾ£©£¬Êä³ö¸ÃÕûÊýµÄ×Ö·û´®ÐÎʽ¡£²ÉÓÃÈçϺ¯ÊýÔ­ÐÍ£º
void itoa ( int val, buf* );
ÕâÀï¼Ù¶¨buf×ã¹»´óÒÔÈÝÄÉÈκÎintÀàÐÍÊýÖµµÄ×Ö·û´®¡£
Õâ¸öÎÊÌ⣬³õ¿´ºÃÏñûÓÐʲôÄѶȡ£Èç¹ûÊÇ0£¬¾ÍÖ±½ÓÊä³ö'0'£»Èç¹ûÊÇÕýÊý£¬¾Íͨ¹ýȡģ(%)ºÍÇóÉÌ(/)ÔËËã¿ÉÒÔÖðλȡµÃ¸ÃÕûÊýµÄÊý×Ö£¬²¢° ......

×Ô¼ºÕûÀíµÄ¹ØÓÚCµÄһЩ×Ö·û´®´¦Àíº¯Êý

¼øÓÚÔÚÓÃCÓïÑÔдһЩ×Ö·û´®´¦ÀíµÄ³ÌÐòʱÖÖÖֵIJ»±ã,±¾È˼áÐÅ"Ä¥µ¶²»Îó¿³²ñ¹¦"Õâ¸öÐÅÌõ,ÓÚÊÇÔÚרÃÅ
½øÐÐÁËÒ»´ÎÄ¥¶ÔCÓïÑÔµÄÄ¥µ¶,дÁËһЩ×Ö·û´®µÄ´¦Àíº¯Êý, ·½±ãÍøÓÑʹÓÃ, ´ó¼ÒÓкõĽâ¾ö·½·¨Ò²Çë¸æÖªÒ»ÏÂ.
¡¡¡¡¡¡¡¡ÎÒ¹À¼ÆÓÐһЩCµÄ¿âÖп϶¨ÓбÈÎÒÕâ¸üºÃµÄº¯Êý, µ«ÊDZ¾ÈËûÓÐÕÒµ½, Íû"ÐмÒ"¸æÖª.
#include <string.h> ......

linuxÏÂcÓïÑÔÁ¬½ÓmysqlÊý¾Ý¿â

ÔÚFC8ÖÐĬÈϰ²×°µÄÓÐmysql£¬Ã»Óеϰ¿ÉÒԺܷ½±ãµÄ°²×°Ï¡£
ĬÈϵÄmysqlµÄincludeÎļþĿ¼ÔÚ/usr/include/mysql
ĬÈϵÄmysqlµÄlibÎļþ¼ÐÔÚ/usr/lib/mysql
ÕâÁ½¸öĿ¼ÔÚÎÒÃDZàÒëʱºòÐèÒªµ½¡£
ÎҵIJâÊÔÓõÄC´úÂëΪ£º
££include <stdio.h>
#include <stdlib.h>
#include <mysql.h>
#define CONN_HOST ......

CÖеĿɱä²ÎÊýÑо¿

CÖеĿɱä²ÎÊýÑо¿
Ò»£® ºÎν¿É±ä²ÎÊý
int
printf( const char* format, ...);
ÕâÊÇʹÓùýCÓïÑÔµÄÈËËùÔÙÊìϤ²»¹ýµÄprintfº¯ÊýÔ­ÐÍ£¬ËüµÄ²ÎÊýÖÐ
¾ÍÓй̶¨²ÎÊýformatºÍ¿É±ä²ÎÊý£¨ÓÔ…”±íʾ£©. ¶øÎÒÃÇÓÖ¿ÉÒÔÓø÷ÖÖ·½Ê½À´µ÷ÓÃprintf,Èç:
printf("%d",value);

printf("%s",s ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ