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

c/c++ ÄÚ´æ¶ÔÆë sizeof

   һƪ½²¶ÔÆë±È½ÏºÃµÄÎÄÕ£¬×ªÌùÈçÏÂ:
´óÖ±ê×¢Ò»¶þ:
1.ÄÚ´æ¶ÔÆë:¼ÆËã»úϵͳ¶Ô»ù±¾ÀàÐÍÊý¾ÝÔÚÄÚ´æÖдæ·ÅµÄλÖÃÓÐÏÞÖÆ£¬ËüÃÇ»áÒªÇóÕâЩÊý¾ÝµÄÊ×µØÖ·µÄÖµÊÇij¸öÊýk(ͨ³£ËüΪ4»ò8)µÄ±¶ÊýkÔò±»³ÆÎª¸ÃÊý¾ÝÀàÐÍµÄ¶ÔÆëÄ£Êý(alignment modulus)
2.²»Í¬±àÒëÆ÷ĬÈϵÄ×î´ó¶ÔÆë×Ö½ÚÊýÊDz»Ò»ÑùµÄ,±ÈÈçvc==8,gcc==4,¿ÉÒÔͨ¹ý#progma pack (n)À´ÐÞ¸Ä,·ÖÎö³ÌÐòµÄʱºòҪעÒâ±àÒëÆ÷µÄÇø±ð
3.Ò»¸ö½á¹¹ÌåÀïÃæ,°´ÕÕalignment modulus×î´óµÄÊý¾Ý³ÉÔ±À´½øÐÐ¶ÔÆë,³¬¹ý±àÒëÆ÷¹æ¶¨×î´óµÄ¶ÔÆë×Ö½Ú¸öÊý,°´±àÒëÆ÷×î´ó¶ÔÆë×Ö½Ú¸öÀ´
4.doubleÀàÐÍÔÚvcÀïÃæalignment modulus == 8,¶øÔÚgccÀïÃæÓÉÓÚĬÈÏ×î´ó¶ÔÆë¸öÊýÊÇ4,²»ÉèÖõϰ,alignment modulus == 4
5.ÒòΪÊý×é¸÷ÔªËØÖ®¼ä²»ÄÜÓпÕ϶,ËùÒÔ{int a;char b;}
ÕâÖÖÇé¿ö,ĬÈÏÔÚVCÀïÃæÒ²ÐèÒªÕ¼8¸ö×Ö½Ú.
   ÕýÎÄÈçÏ£º
   µ±ÔÚCÖж¨ÒåÁËÒ»¸ö½á¹¹ÀàÐÍʱ£¬ËüµÄ´óСÊÇ·ñµÈÓÚ¸÷×Ö¶Î(field)´óС֮ºÍ£¿±àÒëÆ÷½«ÈçºÎÔÚÄÚ´æÖзÅÖÃÕâЩ×ֶΣ¿ANSI C¶Ô½á¹¹ÌåµÄÄÚ´æ²¼¾ÖÓÐʲôҪÇ󣿶øÎÒÃǵijÌÐòÓÖÄÜ·ñÒÀÀµÕâÖÖ²¼¾Ö£¿ÕâЩÎÊÌâ»òÐí¶Ô²»ÉÙÅóÓÑÀ´Ëµ»¹ÓеãÄ£ºý£¬ÄÇô±¾ÎľÍÊÔ×Å̽¾¿ËüÃDZ³ºóµÄÃØÃÜ¡£
    Ê×ÏÈ£¬ÖÁÉÙÓÐÒ»µã¿ÉÒԿ϶¨£¬ÄǾÍÊÇANSI C±£Ö¤½á¹¹ÌåÖи÷×Ö¶ÎÔÚÄÚ´æÖгöÏÖµÄλÖÃÊÇËæËüÃǵÄÉùÃ÷˳ÐòÒÀ´ÎµÝÔöµÄ£¬²¢ÇÒµÚÒ»¸ö×ֶεÄÊ×µØÖ·µÈÓÚÕû¸ö½á¹¹ÌåʵÀýµÄÊ×µØÖ·¡£±ÈÈçÓÐÕâÑùÒ»¸ö½á¹¹Ì壺
 
  struct vector{int x,y,z;} s;
  int *p,*q,*r;
  struct vector *ps;
 
  p = &s.x;
  q = &s.y;
  r = &s.z;
  ps = &s;
  assert(p < q);
  assert(p < r);
  assert(q < r);
  assert((int*)ps == p);
  // ÉÏÊö¶ÏÑÔÒ»¶¨²»»áʧ°Ü
    Õâʱ£¬ÓÐÅóÓÑ¿ÉÄÜ»áÎÊ:"±ê×¼ÊÇ·ñ¹æ¶¨ÏàÁÚ×Ö¶ÎÔÚÄÚ´æÖÐÒ²ÏàÁÚ?"¡£ ßí£¬¶Ô²»Æð£¬ANSI CûÓÐ×ö³ö±£Ö¤£¬ÄãµÄ³ÌÐòÔÚÈκÎʱºò¶¼²»Ó¦¸ÃÒÀÀµÕâ¸ö¼ÙÉè¡£ÄÇÕâÊÇ·ñÒâζ×ÅÎÒÃÇÓÀÔ¶ÎÞ·¨¹´ÀÕ³öÒ»·ù¸üÇåÎú¸ü¾«È·µÄ½á¹¹ÌåÄÚ´æ²¼¾Öͼ£¿Å¶£¬µ±È»²»ÊÇ¡£²»¹ýÏÈÈÃÎÒÃÇ´ÓÕâ¸öÎÊÌâÖÐÔÝʱ³éÉí£¬¹Ø×¢Ò»ÏÂÁíÒ»¸öÖØÒªÎÊÌâ————ÄÚ´æ¶ÔÆë¡£
    Ðí¶àʵ¼ÊµÄ¼ÆËã»úϵͳ¶Ô»ù±¾ÀàÐÍÊý¾ÝÔÚÄÚ´æÖдæ·ÅµÄλÖÃÓÐÏÞÖÆ£¬ËüÃÇ»áÒªÇóÕâЩÊý¾ÝµÄÊ×µØÖ·µÄÖµÊÇij¸öÊýk(ͨ³£ËüΪ4»ò8)µÄ±¶Êý£¬Õâ¾ÍÊÇËùνµÄÄÚ´æ¶ÔÆë£¬¶øÕâ¸ökÔò±»³


Ïà¹ØÎĵµ£º

TCP£¨SOCKETS£©±à³Ì C/C++ʵÏÖ

ͨÐÅ
Server£º
#pragma comment(lib, "ws2_32.lib")
#include <Winsock2.h>
#include <stdio.h>

void main()
{
//°æ±¾Ð­ÉÌ
WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD(1,1); //0x0101
err = WSAStartup ......

linux C forkº¯Êý

´´½¨Ð½ø³Ì£ºforkº¯Êý
1.1.1. forkº¯Êý¸Éʲô£¿
     #include <sys/types.h>
     #include <unistd.h>
     pid_t fork(void);
      ‘fork()’º¯ÊýÓÃÓÚ´ÓÒÑ´æÔÚ½ø³ÌÖд´½¨Ò»¸öнø³Ì¡£Ð½ø³Ì³ÆÎª×Ó½ ......

±àд¿ÉÒÆÖ²C/C++³ÌÐòÒªµã

      1.·Ö²ãÉè¼Æ£¬¸ôÀëÆ½Ì¨Ïà¹ØµÄ´úÂë¡£¾ÍÏñ¿É²âÊÔÐÔÒ»Ñù£¬¿ÉÒÆÖ²ÐÔÒ²Òª´ÓÉè¼Æ×¥Æð¡£Ò»°ãÀ´Ëµ£¬×îÉϲãºÍ×îϲ㶼²»¾ßÓÐÁ¼ºÃµÄ¿ÉÒÆÖ²ÐÔ¡£×îÉϲãÊÇ
GUI£¬´ó¶àÊýGUI¶¼²»ÊÇ¿çÆ½Ì¨µÄ£¬ÈçWin32 SDKºÍMFC¡£×îϲãÊDzÙ×÷ϵͳAPI£¬´ó¶à²¿·Ö²Ù×÷ϵͳAPI¶¼ÊÇרÓõġ£
¡¡¡¡
Èç¹ûÕâÁ½²ãµÄ´úÂëÉ¢²¼ÔÚÕû¸öÈí¼ ......

Window+GCC+CDTÓÃEclipse¿ª·¢C¡¢C++

Eclipse³ýÁË¿ÉÒÔ開發JavaÖ®Í⣬還Ö§Ô®ÁË許¶à語ÑÔ£¬現ÔÚÏȽé紹
C¡¢C++µÄ開發環¾³設¶¨£¬ÒÔááÓÐ機會ÔÙ½é紹ÆäËüµÄ¡£Enjoy it£¡
OS£ºWindows XP Professional SP1
ʹÓð汾£ºEclipse 2.1.2
Ò».Ê×ÏÈÒªÏÂ載CDT£¬Eclipse 2.1.2 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ