×÷ΪһÃû³ÌÐòÔ±£¬Èç¹û˵³ÁÃÔÒ»Ãűà³ÌÓïÑÔËã×÷Ò»ÖÖÀÖȤµÄ»°£¬ÄÇôÓë´Ëͬʱ·´¹ýÀ´È¥ºÚÒ»Ãűà³ÌÓïÑÔ¾ÍÊÇÕâÖÖÀÖȤµÄÉý»ª¡£½ñÌìÎÒÃǾÍÀ´ºÚÒ»°ÑCÓïÑÔ£¬ºÃºÃչʾһÏÂÕâÞµäÓïÑÔÁîÈË×¥¿ñµÄÒ»Ãæ¡£
ÎÒÃÇÖªµÀ£¬È«¾Ö±äÁ¿ÊÇCÓïÑÔÓï·¨ºÍÓïÒåÖÐÒ»¸öºÜÖØÒªµÄ֪ʶµã£¬Ê×ÏÈËüµÄ´æÔÚÒâÒåÐèÒª´ÓÈý¸ö²»Í¬½Ç¶ÈÈ¥Àí½â£º¶ÔÓÚ³ÌÐòÔ±À´Ëµ£¬ËüÊÇÒ»¸ö¼Ç¼ÄÚÈݵıäÁ¿(variable)£»¶ÔÓÚ±àÒë/Á´½ÓÆ÷À´Ëµ£¬ËüÊÇÒ»¸öÐèÒª½âÎöµÄ·ûºÅ(symbol)£»¶ÔÓÚ¼ÆËã»úÀ´Ëµ£¬Ëü¿ÉÄÜÊǾßÓеØÖ·µÄÒ»¿éÄÚ´æ(memory)¡£Æä´ÎÊÇÓï·¨/ÓïÒ壺´Ó×÷ÓÃÓòÉÏ¿´£¬´østatic¹Ø¼ü×ÖµÄÈ«¾Ö±äÁ¿·¶Î§Ö»ÄÜÏÞ¶¨ÔÚÎļþÀ·ñÔò»áÍâÁªµ½Õû¸öÄ£¿éºÍÏîÄ¿ÖУ»´ÓÉú´æÆÚÀ´¿´£¬ËüÊǾ²Ì¬µÄ£¬¹á´©Õû¸ö³ÌÐò»òÄ£¿éÔËÐÐÆڼ䣨עÒ⣬ÕýÊÇ¿çµ¥Ôª·ÃÎʺͳÖÐøÉú´æÖÜÆÚÕâÁ½¸öÌصãʹµÃÈ«¾Ö±äÁ¿ÍùÍù³ÉΪһ¶ÎÊܹ¥»÷´úÂëµÄÍ»ÆÆ¿Ú£¬Á˽âÕâÒ»µãÊ®·ÖÖØÒª£©£»´Ó¿Õ¼ä·ÖÅäÉÏ¿´£¬¶¨ÒåÇÒ³õʼ»¯µÄÈ«¾Ö±äÁ¿ÔÚ±àÒëʱÔÚÊý¾Ý¶Î(.data)·ÖÅä¿Õ¼ä£¬¶¨Ò嵫δ³õʼ»¯µÄÈ«¾Ö±äÁ¿ÔÝ´æ(tentative definition)ÔÚ.bss¶Î£¬±àÒëʱ×Ô¶¯ÇåÁ㣬¶ø½ö½öÊÇÉùÃ÷µÄÈ«¾Ö±äÁ¿Ö»ÄÜËã¸ö·ûºÅ£¬¼Ä´æÔÚ±àÒëÆ÷µÄ·ûºÅ±íÄÚ£¬²»»á·ÖÅä¿Õ¼ä£¬Ö±µ½Á´½Ó»òÕßÔËÐÐʱÔÙÖض¨Ïòµ½ÏàÓ¦µÄµØÖ·ÉÏ¡£
ÎÒÃǽ«ÏòÄúÕ¹ÏÖһϣ¬·ÇstaticÏÞ¶¨È«¾Ö±äÁ¿ÔÚ±àÒë/Á´½ÓÒÔ¼°³ÌÐòÔËÐÐʱ»á·¢ÉúÄÄЩÓÐȤµÄÊÂÇ飬˳±ã¿ÉÒÔ¶ÔC±àÒëÆ÷/Á´½ÓÆ÷µÄ½âÎöÔÀí¹ÜÖпú±ª¡£ÒÔÏÂʾÀý¶ÔANSI CºÍGNU C±ê×¼¶¼ÓÐЧ£¬±ÊÕߵıàÒë»·¾³ÊÇUbuntuϵÄGCC-4.4.3¡£
µÚÒ»¸öÀý×ÓMakefileÈçÏ£º
ÔËÐÐÇé¿ö£º
Õâ¸öÏîÄ¿ÀïÎÒÃǶ¨ÒåÁËËĸöÈ«¾Ö±äÁ¿£¬t.hÍ·Îļþ¶¨ÒåÁËÒ»¸öÕûÐÍa£¬main.cÀﶨÒåÁËÁ½¸öÕûÐÍbºÍc²¢ÇÒδ³õʼ»¯£¬foo.cÀﶨÒåÁËÒ»¸ö³õʼ»¯Á˵ĽṹÌ壬»¹¶¨ÒåÁËÒ»¸ömainµÄº¯ÊýÖ¸Õë±äÁ¿¡£ÓÉÓÚCÓïÑÔÿ¸öÔ´Îļþµ¥¶À±àÒ룬ËùÒÔt.h·Ö±ð°üº¬ÁËÁ½´Î£¬ËùÒÔint a¾Í±»¶¨ÒåÁËÁ½´Î¡£Á½¸öÔ´ÎļþÀï±äÁ¿bºÍº¯ÊýÖ¸Õë±äÁ¿main±»Öظ´¶¨ÒåÁË£¬Êµ¼ÊÉÏ¿ÉÒÔ¿´×ö´úÂë¶ÎµÄµØÖ·¡£µ«±àÒëÆ÷²¢Î´±¨´í£¬Ö»¸ø³öÒ»Ìõ¾¯¸æ£º
ÔËÐгÌÐò·¢ÏÖ£¬main.c´òÓ¡ÖÐb´óСÊÇ4¸ö×Ö½Ú£¬¶øfoo.cÊÇ8¸ö×Ö½Ú£¬ÒòΪsizeof¹Ø¼ü×ÖÊDZàÒëʱ¾öÒ飬¶øÔ´ÎļþÖжÔbÀàÐͶ¨Òå²»Ò»Ñù¡£µ«ÁîÈ˾ªÆæµÄÊÇÎÞÂÛÊÇÔÚmain.c»¹ÊÇfoo.cÖУ¬aºÍb¶¼ÊÇÏàͬµÄµØÖ·£¬Ò²¾ÍÊÇ˵£¬aºÍb±»¶¨ÒåÁËÁ½´Î£¬b»¹ÊDz»Í¬ÀàÐÍ£¬µ«ÄÚ´æÓ³ÏñÖÐÖ»ÓÐÒ»·Ý¿½±´¡£ÎÒÃÇ»¹¿´µ½£¬main.cÖÐbµÄÖµ¾ÓÈ»¾ÍÊÇfoo.cÖнṹÌåµÚÒ»¸ö³ÉÔ±±äÁ¿b.aµÄÖµ£¬Õâ֤ʵÁËÇ°ÃæµÄÍƶϡª¡ª¼´±ã´æÔÚ¶à´Î¶¨Ò壬ÄÚ´æÖÐÖ»ÓÐÒ»·Ý³õʼ»¯µÄ¿½±´¡£ÁíÍâÔÚÕâÀïcÊÇÖÃÉíÊÂÍâµÄÒ»¸ö¶ÀÁ¢±äÁ¿¡£
ΪºÎ»áÕâÑùÄØ£¿ÕâÉæ¼°µ½C±àÒëÆ÷¶Ô¶àÖض¨ÒåµÄÈ«¾Ö·ûºÅµÄ½âÎöºÍÁ´½Ó¡£ÔÚ±àÒë½×¶Î£¬±àÒëÆ÷½«È«¾Ö·ûºÅÐÅÏ¢Òþº¬µØ±àÂëÔÚ¿ÉÖض¨Î»Ä¿±êÎļþµÄ·ûºÅ±íÀï¡£ÕâÀïÓиö¡°Ç¿·ûºÅ(strong)¡±ºÍ¡°Èõ·ûºÅ(weak)¡±µÄ¸ÅÄ¡ªÇ°ÕßÖ¸µÄÊǶ¨Òå²¢ÇÒ³õʼ»¯Á˵ıäÁ¿£¬±ÈÈçfoo.cÀïµÄ½á¹¹Ìåb£¬ºóÕßÖ¸µÄÊÇ䶨Òå»òÕ߶¨Ò嵫δ³õʼ»¯µÄ±äÁ¿£¬±ÈÈçmain.cÀïµÄÕûÐÍbºÍc£¬»¹ÓÐÁ½¸öÔ´Îļþ¶¼°üº¬Í·ÎļþÀïµÄa¡£µ±·ûºÅ±»¶àÖض¨Òåʱ£¬GNUÁ´½ÓÆ÷(ld)ʹÓÃÒÔϹæÔò¾öÒ飺
²»ÔÊÐí³öÏÖ¶à¸öÏàͬǿ·ûºÅ¡£
Èç¹ûÓÐÒ»¸öÇ¿·ûºÅºÍ¶à¸öÈõ·ûºÅ£¬ÔòÑ¡ÔñÇ¿·ûºÅ¡£
Èç¹ûÓжà¸öÈõ·ûºÅ£¬ÄÇôÏȾöÒéµ½size×î´óµÄÄǸö£¬Èç¹ûͬÑù´óС£¬Ôò°´ÕÕÁ´½Ó˳ÐòÑ¡ÔñµÚÒ»¸ö¡£
ÏñÉÏÃæÕâ¸öÀý×ÓÖУ¬È«¾Ö±äÁ¿aºÍb´æÔÚÖظ´¶¨Òå¡£Èç¹ûÎÒÃǽ«main.cÖеÄb³õʼ»¯¸³Öµ£¬ÄÇô¾Í´æÔÚÁ½¸öÇ¿·ûºÅ¶øÎ¥·´Á˹æÔòÒ»£¬±àÒëÆ÷±¨´í¡£Èç¹ûÂú×ã¹æÔò¶þ£¬Ôò½ö½öÌá³ö¾¯¸æ£¬Êµ¼ÊÔËÐÐʱ¾öÒéµÄÊÇfoo.cÖеÄÇ¿·ûºÅ¡£¶ø±äÁ¿a¶¼ÊÇÈõ·ûºÅ£¬ËùÒÔֻѡÔñÒ»¸ö£¨°´ÕÕÄ¿±êÎļþÁ´½ÓʱµÄ˳Ðò£©¡£
ÊÂʵÉÏ£¬ÕâÖÖ¹æÔòÊÇCÓïÑÔÀïµÄÒ»¸ö´ó¿Ó£¬±àÒëÆ÷¶ÔÕâÖÖÈ«¾Ö±äÁ¿¶àÖض¨ÒåµÄ¡°×ÝÈÝ¡±ºÜ¿ÉÄÜ»áÎÞ¶ËÐÞ¸Äij¸ö±äÁ¿£¬µ¼Ö³ÌÐò²»È·¶¨ÐÐΪ¡£Èç¹ûÄ㻹ûÓÐÒâʶµ½ÊÂ̬ÑÏÖØÐÔ£¬ÎÒÔپٸöÀý×Ó¡£
µÚ¶þ¸öÀý×ÓÔËÐÐÇé¿öÈçÏ£º
£¨ËµÃ÷Ò»µã£¬ÔËÐÐÇé¿öÊÇÖ±½ÓÊä³öµ½stdoutµÄ´òÓ¡£¬±ÊÕßÔø¾½«./testÊä³öÖض¨Ïòµ½logÖУ¬½á¹û·¢ÏÖ´òÓ¡µÄÖ´ÐÐÐòÁв»Ò»Ö£¬ËùÒÔ²ÉÓÃĬÈÏÊä³ö¡££©
ÕâÊÇÒ»¸ö¶à½ø³Ì»·¾³£¬Ê×ÏÈÎÒÃÇ¿´µ½ÎÞÂÛ¸¸½ø³Ì»¹ÊÇ×Ó½ø³Ì£¬main.c»¹ÊÇfoo.c£¬È«¾Ö±äÁ¿bºÍcµÄµØÖ·ÈÔÈ»ÊÇÒ»Öµģ¨µ±È»Ö»ÊǸöÂß¼µØÖ·£©£¬¶øÇÒ¶ÔbµÄ´óС²»Í¬Ä£¿éÈÔÈ»Óв»Í¬µÄ¾öÒé¡£ÕâÀïÖµµÃ×¢ÒâµÄÊÇ£¬ÎÒÃÇÔÚ×Ó½ø³ÌÖжԱäÁ¿b½øÐи³Öµ¶¯×÷£¬´Ó´Ë×Ó½ø³Ì±¾Éí°üÀ¨foo()µ÷ÓÃÖУ¬ÕûÐÍbÒÔ¼°½á¹¹Ìå³ÉÔ±b.aµÄÖµ¶¼ÊÇ1£¬¶ø¸¸½ø³ÌÖÐÕûÐÍbºÍ½á¹¹Ìå³ÉÔ±b.aµÄÖµÈÔÊÇ2£¬µ«ËüÃÇÏÔʾµÄÂß¼µØÖ·ÈÔÊÇÒ»Öµġ£
¸öÈËÈÏΪ¿ÉÒÔÕâÑù½âÊÍ£¬fork´´½¨Ð½ø³Ìʱ£¬×Ó½ø³Ì»ñµÃÁ˸¸½ø³ÌÉÏÏÂÎÄ¡°¾µÏñ¡±£¨×ÔÈ»°üÀ¨È«¾Ö±äÁ¿£©£¬ÐéÄâµØÖ·Ïàͬµ«ÊôÓÚ²»Í¬µÄ½ø³Ì¿Õ¼ä£¬¶øÇÒ´ËʱÕæÕýÓ³ÉäµÄÎïÀíµØÖ·ÖÐÖ»ÓÐÒ»·Ý¿½±´£¬ËùÒÔbµÄÖµÊÇÏàͬµÄ£¨¶¼ÊÇ2£©¡£Ëæºó×Ó½ø³Ì¶Ôb¸Äд£¬´¥·¢Á˲Ù×÷ϵͳµÄдʱ¿½±´(copy on write)»úÖÆ£¬ÕâʱÎïÀíÄÚ´æÖвŲúÉúÕæÕýµÄÁ½·Ý¿½±´£¬·Ö±ðÓ³Éäµ½²»Í¬½ø³Ì¿Õ¼äµÄÐéÄâµØÖ·ÉÏ£¬µ«ÐéÄâµØÖ·µÄÖµ±¾ÉíÈÔÈ»²»±ä£¬Õâ¶ÔÓÚÓ¦ÓóÌÐòÀ´ËµÊÇ͸Ã÷µÄ£¬¾ßÓÐÒþÂ÷ÐÔ¡£
»¹ÓÐÒ»µãÖµµÃ×¢Ò⣬Õâ¸öʾÀý±àÒëʱûÓгöÏÖµÚÒ»¸öʾÀýµÄ¾¯¸æ£¬¼´¶Ô±äÁ¿bµÄsizeof¾öÒ飬±ÊÕßÒ²²»ÖªµÀΪʲô£¬»òÐíÊÇGCCµÄÒ»¸öbug£¿
µÚÈý¸öÀý×ÓÕâ¸öÀý×Ó´úÂëͬÉÏÒ»¸öÒ»Ö£¬Ö»²»¹ýÎÒÃǽ«foo.c×ö³ÉÒ»¸ö¾²Ì¬Á´½Ó¿âlibfoo.a½øÐÐÁ´½Ó£¬ÕâÀïÖ»¸ø³öMakefileµÄ¸Ä¶¯¡£
ÔËÐÐÇé¿öÈçÏ£º
´ÓÕâ¸öÀý×Ó¿´²»³öÓÐɶ²î±ð£¬Ö»²»¹ýʹÓþ²Ì¬Á´½Óºó£¬È«¾Ö±äÁ¿¼ÓÔصĵØÖ·ÓÐËù¸Ä±ä£¬bºÍcµÄµØÖ·Ö®¼äËƺõÏà¸ô¸üÔ¶ÁËЩ¡£²»¹ýÕâ´Î±àÒëÆ÷µ¹ÊǸø³öÁ˱äÁ¿bµÄsizeof¾öÒ龯¸æ¡£
µ½´ËΪֹ£¬ÓÐЩÈË¿ÉÄÜ»á¶ÔÉÏÃæµÄÀý×ÓàÍÖ®ÒԱǣ¬¾õµÃÕâ²»¹ýÊÇÁоÙÁËCÓïÑÔµÄijЩÌØÐÔ¶øÒÑ£¬Ëã²»ÉϺڡ£ÓÐЩÈËÈÏΪ¼ÈÈ»Èç´Ë£¬¶ÔÓÚÒ»ÇÐÈ«¾Ö±äÁ¿ÒªÃ´ÓÃstaticÏÞËÀ£¬ÒªÃ´¶¨Òåͬʱ³õʼ»¯£¬¶Å¾øÈõ·ûºÅ£¬ÒÔ±ãÔÚ±àÒëʱ±¨´í¼ì²â³öÀ´¡£Ö»ÒªÐ¡ÐĵØʹÓã¬CÓïÑÔ»¹ÊǺÜÍêÃÀµÄÂï~¶ÔÓÚ±§ÕâÑùÏë·¨µÄÈË£¬ÎÒÖ»Ïë˵£¬ÇëÄãÔÚÒ¹ÉîÈ˾²µÄʱºòÊúÆð¶ú¶ä×ÐϸñöÌý£¬ÄãºÜ¿ÉÄÜÌýµ½Dennis RichieÔÚ¾ÅȪ֮ÏÂа¶ñµÄЦÉù¡ª¡ª²»£¬ÓëÆä˵Êdz°Ð¦£¬²»Èç˵ÊÇ×çÖä¡¡
µÚËĸöÀý×ÓMakefile½Å±¾£º
Ö´Ðнá¹û£º
ÆäʵǰÃ漸¸öÀý×ÓÖ»ÊÇ¿ªÎ¸Ð¡²Ë¶øÒÑ£¬ÕæÕýµÄ´ó¿ÓÖÕÓÚ³öÏÖÁË£¡¶øÇÒÕâ´Î±àÒëÆ÷¼Èû±¨´íҲû¾¯¸æ£¬µ«ÎÒÃÇȷʵÑÛÕöÕöµØ¿´µ½×÷Ϊmain()ÖÐÇ¿·ûºÅµÄb±»¸ÄдÁË£¬¶øÇÒÒ»ÅÔµÄcÒ²¡°ÌÉǹ¡±ÁË¡£ÑÛ¼âµÄ¶ÁÕß·¢ÏÖ£¬Õâ´Îfoo.cÊÇ×÷Ϊ¶¯Ì¬Á´½Ó¿âÔËÐÐʱ¼ÓÔصģ¬µ±t1µÚÒ»´Îµ÷ÓÃt2ʱ£¬libfoo.so»¹Î´¼ÓÔØ£¬Ò»µ©µ÷ÓÃÁËfooº¯Êý£¬bÁ¢ÂíÖе¯£¬¶øÇÒcµÄµØÖ·¾ÓÈ»»¹ÏàÁÚ×Åb£¬ÕâʹµÃcһͬÖе¯ÁË¡£²»¹ý±ÊÕßÓÐЩÎÞ·¨½âÊÍÕâÖÖÐÐΪµÄÔÒò£¬ÓÐÖÖ˵·¨ÊÇÇ¿·ûºÅµÄÈ«¾Ö±äÁ¿ÔÚÊý¾Ý¶ÎÖÐÊÇÁ¬Ðø·Ö²¼µÄ£¨ÏàÓ¦µØÈõ·ûºÅÔÝ´æÔÚ.bss¶Î»òÕß·ûºÅ±íÀ£¬»òÐí¿ÉÒÔÉϱ¨GNUµÄ±àÒëÆ÷¿ª·¢Ð¡×é¡£
ÁíÍâ±ÊÕß³¢ÊÔ¹ý½«t1.cÖеÄbºÍc¶¨ÒåÇ°Ãæ¼ÓÉÏconstÏÞ¶¨´Ê£¬±àÒëÆ÷ÈÔȻĬÈÏͨ¹ý£¬µ«³ÌÐòÔÚmain()ÖеÚÒ»´Îµ÷ÓÃfoo()ʱ´¥·¢ÁËSegment faultÒì³£µ¼Ö±¼À££¬ÔÚfoo.cÀïʹÓÃÖ¸Õë¸ÄдËüÒ²Ò»Ñù¡£ÍƶÏÕâÊÇGCC¶Ôconst³£Á¿ËùÔÚµØÖ·ÆôÓÃÁËÀàËƲÙ×÷ϵͳд±£»¤»úÖÆ£¬µ«ÎÒÎÞ·¨È·¶¨ÔçÆÚ°æ±¾µÄGCCÊÇ·ñ»áÈÃÕâ¸öconst³£Á¿±»¸Äд¶ø³ÌÐò²»»á±¼À£¡£
ÖÁÓÚvolatile¹Ø¼ü´ÊÖ®ÓÚÈ«¾Ö±äÁ¿£¬×Ô²âËƺõûÓÐÓ°Ïì¡£
ÔõôÑù£¿¿´ÁË×îºóÒ»¸öÀý×ÓÊÇ·ñÓе㡰²»Ã÷¾õÀ÷¡±ÄØ£¿CÓïÑÔÔÚÄãÐÄÄ¿ÖÐÊÇ·ñ»¹Êǵ±³õÄǸö¡°´¿½à¡±¡¢¡°¸É¾»¡±¡¢¡°ÐÐΪһÖ¡±µÄ¹ÃÄïÄØ£¿Ò²Ðí³Ã×ÅÄã²»×¢ÒâµÄʱºòËý»á͵͵¸øÄã´÷¶¥ÂÌñ£¬ÕâÒ»Çж¼ÊÇͨ¹ýÈ«¾Ö±äÁ¿£¬ÌرðÔÚ¶¯Ì¬Á´½ÓµÄ»·¾³Ï£¬¾ÍËãÈ«²¿¶¨Òå³ÉÇ¿·ûºÅÈÔÈ»ÎÞ·¨Îª±àÒëÆ÷Ëù²ì¾õ¡£¶øһЩIT½ç¡°¿Ö²À·Ö×Ó¡±Ò²¾³£½«¶ñÒâ´úÂë°ü×°³ÉÈ«¾Ö±äÁ¿×¢Èëµ½rootȨÏÞÏ´æÔÚ©¶´µÄ²Ù×÷ÐòÁÐÖУ¬¾ÍÏñÖøÃûµÄÕ»Òç³ö¹¥»÷ÄÇÑù¡£Ä³Ò»Ììµ±ÄãɵɵµØ¿´×ÅÒ»¸ö³ÌÐò³öÏÖ䶨ÒåµÄÐÐΪȴÎÞ·¨¶¨Î»ÔÒòµÄʱºò£¬Çë²»ÒªÍü¼ÇRichie´óÒ¯ÄÇÀ´×Ô¾ÅȪ֮ÏÂ×îÉî³ÁµÄ¡°Îʺò¡±~
»òÐíÓÐЩÈË»á͵»»¸ÅÄ°ÑÕâÒ»Çйé¾ÌÓÚ±àÒëÆ÷ºÍÁ´½ÓÆ÷ÉíÉÏ£¬ÈÏΪÕâͬÓïÑÔÎ޹أ¬µ«ÎÒÒªÌáÐÑÄ㣬ÕýÊDZàÒë/Á´½ÓÆ÷µÄÐÐΪ֧³ÅÁËÕû¸öÓïÑÔµÄÓï·¨ºÍÓïÒå¡£Äã¿ÉÒÔ·´¹ýÀ´Ë¼¿¼Ò»ÏÂΪºÎCµÄ°ûµÜC++ÍƳö¡°ÃüÃû¿Õ¼ä(namespace)¡±µÄ¸ÅÄ»òÕßÄã¿ÉÒÔʹÓÃÆäËü¸ß¼¶ÓïÑÔ£¬¶ÔÓÚÖض¨ÒåµÄÈ«¾Ö±äÁ¿ÊÇ·ñÄÜͨ¹ý±àÒëÕâÒ»¹Ø¡£
ËùÒÔÇëʱ¿Ì½÷¼Ç£¬CÊÇÒ»ÃźֲܿÀµÄÓïÑÔ£¡
P.S.ÌâÍ⻰дÔÚ×îºó¡£ÎÒÎÞÒâÌôÆðÓïÑÔÖ®Õù£¬Ö»ÊǾÍÊÂÂÛʵØÈ¥¡°ºÚ(hack)¡±Ò»ÃÅÓïÑÔ¶øÒÑ£¬¶øÇÒÒªºÚ¾ÍÒªºÚµÃÓÐÀíÓÐÁ¦Óвã´Î£¬»¹Òª´øµãÓéÀÖ¾«Éñ¡£ÆäʵºÚÒ»ÃÅÓïÑÔ²¢·Çʲô¼â¶Ë¸´Ôӵļ¼Êõ£¬¸öÈ˾õµÃÆðÂëÒª×öµ½Á½µã£º
Ç××Ô¶¯ÊÖд²âÊÔ³ÌÐò¡£¶¯ÊÖд²âÊÔ³ÌÐòÊÇ¿ª·¢ÈËÔ±±Ø±¸µÄ»ù´¡¼¼ÄÜ£¬Ö»ÓÐÏֳɵĴúÂë²ÅÄÜÈÃÈËÐÄ·þ¿Ú·þ£¬ÄÇЩֻ»áÍ£ÁôÔÚ¿ÚÍ·ÉϵÄÕùÂÛÖ»ÄÜËã×÷cheap hack¡£
²âÊÔ³ÌÐò²»ÄÜÒÀÀµÓÚ²»³ÉÊìµÄ´úÂë¡£Èí¼þ¿ª·¢99%ÒÔÉϵÄbug¶¼ÊÇ»ùÓÚ²»ºÏ¸ñ(substandard)¿ª·¢ÈËÔ±µ¼Ö£¬Õâ²¢²»ÄܹÖ×ïÓÚÓïÑÔÒÔ¼°±àÒëÆ÷±¾Éí¡£Ê¹ÓÃÖîÈç#define TRUE FALSE»òÕß#define NULL 1Ö®ÀàµÄtrickÀ´ºÚCÓïÑÔÖ»ÄÜÖ¤Ã÷´ËÈ˺ÜÓÐÓéÀÖ¾«Éñ¶ø²»ÊÇÕæÕýµÄ¡±hack value¡±£¬ÄÃÀϱ±¾©ÀæÔ°Ðе±ÀïµÄÒ»¾ä»°¡ª¡ª¡°ÄÇÊÇÏÂÈýÀĵÄÍæÒâ¶ù¡±