µ±Ç°Î»ÖãºC++¼¼ÊõÍø > ×ÊѶ > dz̸ΪʲôÓÃCÓïÑÔ¿ª·¢ÒýÇæ

dz̸ΪʲôÓÃCÓïÑÔ¿ª·¢ÒýÇæ

¸üÐÂʱ¼ä£º2015-06-22 23:10:07ä¯ÀÀ´ÎÊý£º1+´Î

    Ê×ÏÈʲôÊÇÒýÇ棿
    ÒýÇ棬°Ù¶ÈһϱÈÎÒ½²µÄÒªÑÏÃܺܶ࣬ËùÒÔÎÒ¾ÍÓÃͨË׵Ļ°À´ÃèÊöһϰɡ£ÒýÇ棬¾ÍÊÇÒ»ÇÐAPI(application programming interface)µÄ·â×°¡£Èç¹ûÊÇÓÎÏ·ÒýÇ棬ÄÇôÓÎÏ·ÒýÇæ¾Í·â×°Á˺ܶàͼÐδ¦ÀíµÄº¯Êý¡£ÀýÈçÄãÒª»­Ô²(cycle)£¬ÄãֻҪʹÓú¯Êýcycleº¯Êý¾Í¿ÉÒÔÁË¡£µ±È»ÒýÇæÊǺÜÅÓ´óµÄ£¬Ã»ÓÐÏëÏóµÄÄÇô¼òµ¥¡£ÀïÃæ°üÀ¨ÁË£ºÉùÒô¡¢Í¼Ïñ¡¢ÍøÂçµÄÊý¾ÝÁ÷£¬´óÁ¿Ëã·¨£¬Õë¶ÔÓ²¼þµÄ±à³ÌºÍÓÅ»¯µÈµÈµÈ¡££¨Õâ¸öÎÒ˵µÄ²»ÑÏÃÜ£¬Ö»ÊǸøÄãÒ»¸ö´óÖµĸÅÄ°üº¬Óкܶà¸÷ÖÖ¸÷ÑùµÄ¿â£¬¶ø¿âµÄ¹¤×÷ÊǶÀÁ¢Íê³É×Ô¼ºµÄÈÎÎñ£¬ÒýÇæµÄ¹¤×÷ÊǹÜÀí¸÷¸ö¿âÖ®¼äµÄÁªÏµ¡£Äã¿ÉÒÔÏëÏóÒ»ÏÂÒ»¸öonline game£¬ÖÁÉÙÓÐÈËÎï¡¢npc¡¢µØͼ¡¢¹ÖÎï¡£ÄÇôÆäÖÐËûÃÇ×Ô¼º¾ÍÊǶÀÁ¢¿â¡£ÒýÇæ¾ÍÊÇÒªËûÃǸßЧ¡¢×¼È·µÄÈ¥¹²Í¬Íê³ÉÒ»¸ö¹¤×÷¡£
    ÒÔÉÏÊÇÎÒ¸öÈ˵ĽâÊÍ£¬µ±È»ºÜ¶àÊDz»×¼È·µÄ£¬´ó¼ÒÖ»ÒªÄÃ×߶Ô×Ô¼ºÓÐÓõIJ¿·Ö¾Í¿ÉÒÔÁË¡£


    Ϊʲô˵CÓÃÀ´×öÒýÇæÊǺܺõģ¿


    1¡¢CÓïÑÔÈ«²¿ÄÚ´æÒª×Ô¼º´¦Àí
    ¶ÔÓںܶàÐÂÊÖÀ´ËµÒ»¸öÁ´±íÒѾ­¸ãµÃºÜÍ·ÌÛÁË£¬Ö¸ÕëÖ¸À´Ö¸È¥£¬ÔËÐеÄʱºòºÍ×Ô¼ºµÄÔ¤ÆÚЧ¹ûÏà²îÉõÔ¶¡£·Ö²»ÇåÄÇЩÊÇϵͳ¹ÜÀíµÄÄڴ棬ÄÇЩÊDZØÐëÒª×Ô¼ºÈ¥Êͷŵġ£ÕâʱºòºÜ¶àÈ˾ͻá¾õµÃÃæÏò¶ÔÏóµÄÓïÑÔ¶àºÃ°¡¡£NewÍêÒÔºóÒ²²»Óùܵģ¬¸³Öµnull»òÕߺ¯Êý½áÊø¾Í»á±»»ØÊÕ£¬²»»áÔì³ÉÄÚ´æй©ÎÊÌâ¡£Èç¹ûÔÚCÀïÃæÄãÕâÑù×öÄÚ´æ¾Í»áй©ÁË£¬³¤Ê±¼äÔËÐоͻᱼÀ£¡£

Void* p = malloc( (100);
p = malloc(50);


    ÄÇôǰÃæµÄ100¸ö×Ö½Ú¾ÍÓÀÔ¶ÕÒ²»µ½ÁË£¬Èç¹û²»¶ÏÔËÐУ¬½Ó×ÅÓֻᶪʧ100¸ö×Ö½Ú£¬Ò»¶Îʱ¼ä¹ýºó¾Í»áÒòÄÚ´æ²»×ã³ÌÐò±ÀÀ£ÁË¡£
    ÎÒÃDZà³ÌºÜ¶àʱºò¶¼»áÔËÓõ½»º´æ¼¼Êõ£¬Õâ¾Í»áÉæ¼°µ½ºÜ¶àµÄÉêÇë¿Õ¼ä£¬ÊÍ·Å¿Õ¼äµÄ²Ù×÷£¬Ê¹ÄÚ´æ´æÔںܶàµÄËéƬ£¨²»Á¬ÐøµÄÄÚ´æ¿Õ¼ä£©£¬ÈóÌÐòÎÞ·¨ÉêÇ뵽еÄÄڴ棬µ±È»Õâ¸öÊÇ´óÄÚ´æʱ´ú£¬8G,16G,32GµÈ¸ü´ó¸ü´ó¡£µçÄÔ²»Óÿ¼ÂÇÄÚ´æÎÊÌ⣬µ«ÊÇÒƶ¯É豸ÄØ£¿ÊÖ»úÄØ£¿ÖÇÄܼҾÓÄØ£¿Ç°Á½ÄêµÄÊÖ»ú»¹ÊÇ256mµÄÄڴ棬ÔËÐжàÉÙ¸öϵͳÈí¼þ£¬»¹ÒªÂú×ãÓû§µÄN¸öAPP¹²Í¬ÔËÐС£°²×¿Äܹ»ÔËÐУ¬¶ø°²×¿»ùÓÚlinux£¬linuxÓÉCÓïÑÔ¿ª·¢¡£


    2¡¢ÄÚ´æµÄÖ±½Ó¿ØÖÆ¡£
    ÀýÈçÄãÒªÉêÇëÁ½¸öÄڴ棬p1 = malloc(100);p2=malloc(100);
    ʵʱÔÚCÀïÃæ¿ÉÒÔÕâÑù×ö p1 = malloc(200); p2 = p1+100;ÕâÑùÖ»ÐèÒªºÍ²Ù×÷ϵͳÉêÇëÒ»´Î£¬¶øÇҿռ仹ÊÇÁ¬ÐøµÄ¡£µ±È»ÎªÁ˳ÌÐò¿ÉÔĶÁÐÔǿûÓбØÒªÕâô×ö¡£×îÓÐ˵·þÁ¦µÄ¾ÍÊÇÕâÒ»¾ä»°¡°¸øÎÒÒ»¸öÆðʼÄÚ´æµØÖ·£¬ÎÒ¿ÉÒÔ´´ÔìÒ»¸öÊÀ½ç¡£¡±Õâ¾ä»°À´×Ô¡¶windowsÓÎÏ·±à³Ì´óʦ¼¼ÇÉ¡·£¬Ò²¾ÍÊÇ˵һ¸öÆÁÄ»µÄÏÔʾÆðʼµØÖ·£¬ÎҾͿÉÒÔÔÚÉÏÃæдÈκÎͼÐÎÀ´×é³ÉÒ»¸öÊÀ½ç¡£¿É¼ûCÖ±½Ó¿ØÖÆÄÚ´æÓжàÖØÒª¡£


    3¡¢Ö±½Ó¿ØÖÆλ
    ÀýÈçÓÐÒ»¸öflag£¨ÃèÊö·û£©À´ÃèÊöһֻѼ£¬Ñ¼µÄ·É¡¢ÌøµÈÌØÐÔ¿ÉÒÔÓÃÒ»¸öintÀ´±íʾ¡£

#define FLY  0x00000001  (Æäʵ¾ÍÊÇ1)
#define JUMP 0x00000010  £¨Æäʵ¾ÍÊÇ2£©
Int flag = FLY;£¨±íʾ¿ÉÒÔ·É£©
Int flag = JUMP;£¨±íʾ¿ÉÒÔÌø£©


    ÄÇôÈçºÎ±íʾ¿ÉÒÔÌø ¶øÇÒ¿ÉÒÔ·É ÄØ£¿
    Int flag = FLY|JUMP   (0x00000011Æäʵ¾ÍÊÇ 3£©
    ÄÇôÎÒÃÇ·ÖÎöµÄʱºò
    If(flag& FLY) { £¨·É²Ù×÷£©} 
    If(flag& JUMP) { £¨Ìø²Ù×÷£©}
    ÕâÑù¾Í¿ÉÒÔÈ¡µÃÄãÏëÒªµÄÄǸö±ê־룬µ±È»Õâ¸ö·½·¨flagÊÇÓÐÏÞ¸öÃèÊöµÄchar ÊÇ8  int ÊÇ32 longintÊÇ 64¡£
    Èç¹ûÄãд¹ýCµÄsdkÄã¾ÍÖªµÀÓкܶàmask »òÕß flag ºÜ¶à¶¼Óõ½ÁË¡£

    ÄÇôCºÍÒýÇæµÄ¹ØϵÄØ¡£
    CÓïÑÔºÎÒÔÄÚǶ»ã±à´úÂ룬¿ÉÒÔÕë¶ÔÓ²¼þÀ´±à³Ì¡£Ö±½ÓÓõÄÖ¸ÁîÀ´Ìá¸ßÖ´ÐÐËٶȡ£(SIMD)µ¥Ö¸Áî¶àÊý¾Ý,µÈÌØÊâµÄ´¦Àí·½Ê½¡£¶øÇÒÓ²¼þͨ³£ÒÔλÀ´¼ÆË㣬¶øCÓïÑÔÌáȡλÊǷdz£µÄ·½±ãµÄ¡£Ö±½Ó·¢»ÓÓ²¼þµÄÈ«²¿¹¦ÄÜ¡£Ð´Çý¶¯ÊǷdz£¸ßЧµÄ¡£±àд²¿·ÖÓëÓ²¼þÏà¹ØµÄº¯Êý¡£ÀûÓú¯Êý£¨API£©À´·â×°ºÃ£¬±ä³ÉÁËÒýÇæµÄ»ù±¾º¯Êý¿â¡£ÕâÑùÒ»¸ö»ù±¾¿â¾Í³öÀ´ÁË¡£È»ºó¸ù¾Ý¹æ»®ºÃµÄÊý¾Ý½á¹¹£¬Êý¾ÝÁ÷×ö½øÒ»²½µÄʵÏÖ£¬·â×°£¬ÕâÑù¾Í³ÉÁËÄ£¿é¡£

    ÍøÂçÓÎÏ·À´Ëµ¾Í·ÖÁË£º¾«ÁéÄ£¿é£¬äÖȾģ¿é£¬ÍøÂçÄ£¿é£¬AIÄ£¿é¡£¶øËüÃÇÖ®¼äÊÇÔõôÔË×÷µÄÄØ£¿Õâ¾ÍÒª¿´Õâ¸öÒýÇæµÄÉè¼Æ˼ÏëÁË£¬Ò²¾ÍÊÇÎÒÃÇƽ³£Ëù˵µÄ»úÖÆ¡£ÈçwindowsÏûÏ¢»úÖÆ¡£ÓÃʲôÑùµÄ·½Ê½À´ÔË×÷¡£ÒýÇæ¾ÍÊǹ滮ºÃÕâЩ¶«Î÷£¬È»ºó³ÌÐòÔ±¿´¿ª·¢ÊÖ²á¾ÍÖªµÀÕâ¸öÒýÇæµ½µ×ÓÐʲô¹¦ÄÜÁË¡£ÒýÇæµÄЧÂÊÓëÎȶ¨ÐÔ¾ö¶¨Á˱ðÈËÊÇ·ñÈÏͬ¡£ËùÒÔ¸ßЧµÄµ×²ãËã·¨£¬½¡×³µÄ»úÖƱز»¿ÉÉÙ£¬CÓïÑԾ;ßÓÐÕâÑùµÄÒ»¸öÌØÐÔ£¬¶ÔÓڵײãµÄ¿ØÖÆÊ®·ÖÇ¿¡£

    ÎÒ¾õµÃÈç¹ûÄãÔÚѧCÓïÑÔ£¬¼ÌÐøѧCÓïÑÔ¡£Èç¹ûÄãÊÇÐÂÊÖ£¬½¨ÒéÖ±½ÓѧÃæÏò¶ÔÏóÓïÑÔC++µÈ¡£
    ÒòΪÏÖÔÚCÓïÑÔÒѾ­ÂýÂýµÄûÂäÁË£¬¼´Ê¹ÈÔÈ»ÓкܶàµØ·½»¹ÊÇÒªÓõ½CÓïÑÔ£¬È絥Ƭ»ú¡¢´®¿ÚͨÐÅ¡¢Çý¶¯¡£¼´Ê¹ËüûÂ䣬»¹ÊǺܶà¸ßУ°ÑËû×÷ΪÈëÃÅÓïÑÔ¡£ËùÒÔÎÒ½¨Òé´óÒ»´ó¶þ»¹ÊÇÓÃËü°É£¬°ÑËüÁ·ÊìÁË£¬¿¼ÊԸ߷ÖÆ®¹ý£¬ÔÙѧÃæÏò¶ÔÏóÒѾ­Ã»ÓÐʲôÄѶÈÁË¡£ÌáÈ¡ËüµÄ¾«»ª£¬ÔËÓõ½ÃæÏò¶ÔÏóÀïÃæÈ¥¡£