C/C++ÖеÄÄÚ´æ²¹Æë»úÖÆ
ÔÚCÓïÑÔÖУ¬½á¹¹ÊÇÒ»ÖÖ¸´ºÏÊý¾ÝÀàÐÍ£¬Æä¹¹³ÉÔªËØ¼È¿ÉÒÔÊÇ»ù±¾Êý¾ÝÀàÐÍ£¨Èçint¡¢long¡¢floatµÈ£©µÄ±äÁ¿£¬Ò²¿ÉÒÔÊÇһЩ¸´ºÏÊý¾ÝÀàÐÍ£¨ÈçÊý×é¡¢½á¹¹¡¢ÁªºÏµÈ£©µÄÊý¾Ýµ¥Ôª¡£ÔڽṹÖУ¬±àÒëÆ÷Ϊ½á¹¹µÄÿ¸ö³ÉÔ±°´Æä×ÔÈ»¶Ô½ç£¨alignment£©Ìõ¼þ·ÖÅä¿Õ¼ä¡£¸÷¸ö³ÉÔ±°´ÕÕËüÃDZ»ÉùÃ÷µÄ˳ÐòÔÚÄÚ´æÖÐ˳Ðò´æ´¢£¬µÚÒ»¸ö³ÉÔ±µÄµØÖ·ºÍÕû¸ö½á¹¹µÄµØÖ·Ïàͬ¡£ÀýÈ磬ÏÂÃæµÄ½á¹¹¸÷³ÉÔ±¿Õ¼ä·ÖÅäÇé¿ö£º
struct test
{
char x1;
short x2;
float x3;
char x4;
};
½á¹¹µÄµÚÒ»¸ö³ÉÔ±x1ΪcharÀàÐÍ£¬Æä×ÔÈ»¶Ô½çΪ1£¬ÆäÆ«ÒÆµØÖ·Îª0£¬Õ¼¾ÝÁ˵Ú1¸ö×Ö½Ú¡£µÚ¶þ¸ö³ÉÔ±x2ΪshortÀàÐÍ£¬Æä×ÔÈ»¶Ô½çΪ2£¬ÆðʼµØÖ·±ØÐë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... µÚÒ»ÖÖ·½Ê½½ÏΪ³£¼û¡£
http://blog.csdn.net/wenddy112/articles/300583.aspx
Ó¦ÓÃʵÀý
¡¡¡¡ÔÚÍøÂçÐÒé±à³ÌÖУ¬¾³£»á´¦Àí²»Í¬ÐÒéµÄÊý¾Ý±¨ÎÄ¡£Ò»ÖÖ·½·¨ÊÇͨ¹ýÖ¸ÕëÆ«ÒÆµÄ·½·¨À´µÃµ½¸÷ÖÖÐÅÏ¢£¬µ«ÕâÑù×ö²»½ö±à³Ì¸´ÔÓ£¬¶øÇÒÒ»µ©ÐÒéÓб仯£¬³ÌÐòÐÞ¸ÄÆðÀ´Ò²±È½ÏÂé·³¡£ÔÚÁ˽âÁ˱àÒëÆ÷¶Ô½á¹¹¿Õ¼äµÄ·ÖÅäÔÔòÖ®ºó£¬ÎÒÃÇÍêÈ«¿ÉÒÔÀûÓÃÕâÒ»ÌØÐÔ¶
Ïà¹ØÎĵµ£º
Ê×ÏȰ²×°±ØÐèµÄ¿ª·¢
°ü
sudo apt-get install gcc g++ libgcc1 libg++ make gdb
°²×°MYSQLµÄCÓïÑÔ¿ª·¢°ü
sudo apt-get install libmysql++-dev libmysql++2c2a libmysqlclient15-dev libmysqlclient15off
°ÑlibÎļþ¿½±´µ½¹«ÓÃ
sudo cp /usr/lib/mysql/* /usr/lib/
½¨Á¢Ò»¸öÐÂÎļþtest.cpp
vim test.cpp
ÊäÈëÄÚÈÝ
......
ÏÂÃæÕâ¸ö³ÌÐòÊä³öʲô£¿
enum {false,true};
int main()
{
int i=1;
do
{
printf("%d\n",i);
i++;
if(i < 15)
continue;
}while(false);
return 0;
}
ÄãÏàÐÅô£¿Ï ......
1.JavaµÄ±àÒëÔËÐÐ
JavaÖеÄpackage¸ÅÄîÏ൱ÓÚC++ÖеÄnamespaceµÄ¸ÅÄî¡£µ«ÊÇjava»á°ÑpackageµÄÃû×ÖºÍÎļþϵͳÖÐĿ¼½á¹¹¶ÔÓ¦ÆðÀ´£¬Ò²¼´Èç¹ûÄãÉêÃ÷ÁËij¸öpackageµÄÃû×ÖΪcom.tij.everythingisobj£¬ÄÇôÄãµÄÎļþϵͳÖбØÐë´´½¨com\tij\everythingisobjÕâÑùÒ»¸ö ......
Àý£º#define NELE(a) (sizeof(a) / sizeof(a[0]))
int main() {
char str[] = {'E', 'M', 'C'};
for (int d=-1; d<=(NELE(str)-2);d++)
printf("%c",str[d+1]);
return 0;
}
ÅжÏprintf£¨£©Êä³öµÄÊÇʲô£¬½á¹û¿ÉÄܳöºõÒâÁÏ£¬Ê²Ã´Ò²Ã»ÓÐÊä³ö£¬ÔÒòÄØ£¿ÔÒò ......
ͻ 񻣼
¡¡±¾ÎÄÕë¶ÔĿǰC/SģʽϱàдµÄÓ¦ÓóÌÐò¿Éά»¤ÐÔ²îµÄÌØµã£¬Ìá³öÁËÒ»Ì××Ô¶¯ÔÚÏßÉý¼¶µÄ½â¾ö·½°¸£¬·ÖÎöÁËÔÚÏßÉý¼¶µÄÀ§ÄѼ°ÊµÏÖÔÀí£¬²¢¸ø³öÁËʵÏÖÉý¼¶µÄ²¿·Ö´úÂ룬¾ßÓÐʵ¼Ê²Î¿¼¼ÛÖµºÍÏÖʵÒâÒå¡£±¾ÎijÌÐò´úÂë¾ùÔÚ.Net Framework 1.1 ºÍWindows2000ϲâÊÔͨ¹ý¡£
¡¡¹Ø¼ü´Ê£ºC#£»ÔÚÏßÉý¼¶£»×Ô¶¯Éý¼¶£ ......