¶Á¡¶Î¢ÈíC±à³Ì¾«´â¡·µÄһЩÊÕ»ñ
- ҪʹÓöÏÑÔ¶Ôº¯Êý²ÎÊý½øÐÐÈ·ÈÏ
- ΪÁ˲»±ØÒªµÄ¿ªÏú£¬¿ÉÒÔ½öʹÓöÏÑÔ£¬¶ø²»Òªreturn
ÍøÉÏÓÐÈËдµÄstrcpy´úÂ룬×öÁËÌ«¶àµÄ³ö´í´¦Àí£¬µ¼ÖÂÐÔÄܵÍÏ£¬Æäʵû±ØÒª£¬ÓÃassert¾ÍÐÐÁË£¬ÕâÑùÔÚdebugģʽÏÂÄܲ¶×½´íÎó£¬releaseÏÂÓÖ²»Ó°ÏìÐÔÄÜ¡£
- ÊéÉÏÌṩµÄmemcpyµÄ·¶Àý
void memcpy(void* pvTo, void* pvfrom, size_t size)
{
void* pbTo = (byte*)pvTo;
void* pbfrom = (byte*)pvfrom;
ASSERT(pvTo != NULL && pvfrom != NULL);
/* ÄÚ´æ¿éÖØµþÂð£¿Èç¹ûÖØµþ£¬¾ÍʹÓÃmemmove */
ASSERT(pbTo>=pbfrom+size || pbfrom>=pbTo+size);
while(size-->0)
*pbTo++ == *pbfrom++;
return(pvTo);
}
- ²»Ê¹ÓÃASSERTµÄΣº¦
Õâ¸öС×éµÄ´úÂëÓëWord´úÂëÖ®¼äÒ»¸öÃ÷ÏÔµÄÇø±ðÊÇWord´úÂë´Ó¹ýÈ¥µ½ÏÖÔÚÒ»Ö±¶¼Ê¹ÓöÏÑԺ͵÷ÊÔ´úÂ룬¶øËûÃǵĴúÂëÈ´¼¸ºõûÓÐʹÓöÏÑÔ¡£Òò´Ë£¬Æä³ÌÐòԱûÓÐʲôºÃµÄ°ì·¨¿ÉÒÔÈ·¶¨Æä´úÂëÖеÄʵ¼Ê´íÎóÇé¿ö£¬´íÎóÖ»ÄÜÂýÂýµØ±©Â¶³öÀ´¡£Èç¹ûËûÃÇÔÚ´úÂëÖÐʹÓÃÁ˶ÏÑÔ£¬ÕâЩ´íÎ󱾸ÃÔÚ¼¸¸öÔÂ֮ǰ¾Í±»¼ì²é³öÀ´¡£
ͬÑù£¬xeyezÓÉÓÚûÓÐʹÓÃDebug°æ£¬µ¼ÖÂÁ˺ܶàµÄÄÚ´æ´íÎóÔÚ¿Í»§µÄµçÄÔÉϱ©Â©Á˳öÀ´¡£
- Ò»¸ö´íÎóµÄʹÓÃASSERTµÄÀý×Ó
char* strdup(char* str)
{
char* strNew;
ASSERT(str != NULL);
strNew = (char*)malloc(strlen(str)+1);
ASSERT(strNew != NULL); // ÕâÀïʹÓôíÎó
strcpy(strNew, str);
return(strNew);
}
µÚÒ»¸ö¶ÏÑÔµÄÓ÷¨ÊÇÕýÈ·µÄ£¬ÒòΪËü±»ÓÃÀ´¼ì²éÔڸóÌÐòÕý³£¹¤×÷ʱ¾ø²»Ó¦¸Ã·¢ÉúµÄ·Ç·¨Çé¿ö¡£µÚ¶þ¸ö¶ÏÑÔµÄÓ÷¨Ï൱²»Í¬£¬ËüËù²âÊÔµÄÊÇ´íÎóÇé¿ö£¬ÊÇÔÚÆä×îÖÕ²úÆ·Öп϶¨»á³öÏÖ²¢ÇÒ±ØÐë¶ÔÆä½øÐд¦ÀíµÄ´íÎóÇé¿ö¡£
ËäÈ»ÕâÒ»³ÌÐò¸ü¾«È·µØ·´Ó¦ÁËÏàÓ¦µÄËã·¨£¬µ«ÓоÑéµÄ³ÌÐòÔ±ºÜÉÙ»áÕâÑù±àÂë¡£·ñÔòºÃ»ú»á¾ÍÀ´ÁË£¬ÎÒÃÇ¿ÉÒÔ°ÑËûÃÇÈû½øÒ»Á¾¼ÈûÓа²È«´øÓÖûÓгµÃŵÄË«ÈËCessna³µÖС£ÉÏÃæµÄ³ÌÐòʹÈ˸е½Ì«Î£ÏÕÁË¡£
Ôڸú¯ÊýµÄ½»¸¶°æ±¾ÖУ¬ÏàÓ¦µÄ·À´í´ëÊ©¿ÉÒÔ±£Ö¤µ±³öÁË벡ʱ£¬Óû§¿ÉÒÔ²»ÊÜËðʧ£»¶øÔڸú¯ÊýµÄµ÷ÊÔ°æ±¾ÖУ¬´íÎóÈÔÈ»¿ÉÒÔ±»±¨¸æ³öÀ´¡£
Ïà¹ØÎĵµ£º
CÖеÄCONST¡¡¡¡
CÖÐCONSTµÄʹÓãº
¡¡¡¡constÊÇÒ»¸öCÓïÑԵĹؼü×Ö£¬ËüÏÞ¶¨Ò»¸ö±äÁ¿²»ÔÊÐí±»¸Ä±ä¡£Ê¹ÓÃconstÔÚÒ»¶¨³Ì¶ÈÉÏ¿ÉÒÔÌá¸ß³ÌÐòµÄ°²È«ÐԺͿɿ¿ÐÔ£¬ÁíÍ⣬ÔÚ¹Û¿´±ðÈË´úÂëµÄʱºò£¬ÇåÎúÀí½âconstËùÆðµÄ×÷Ó㬶ÔÀí½â¶Ô·½µÄ³ÌÐòÒ²ÓÐһЩ°ïÖú¡£
¡¡¡¡ËäÈ»ÕâÌýÆðÀ´ºÜ¼òµ¥£¬µ«Êµ¼ÊÉÏ£¬constµÄʹÓÃÒ²ÊÇcÓïÑÔÖÐÒ»¸ö±È½Ï΢ÃîµÄµØ ......
¿¼²éÒ»¸ö³õ¼¶Ç¶Èëʽϵͳ¿ª·¢ÈËÔ±µÄC»ù±¾¹¦£¬¸½Óдð°¸ÌâÄ¿ÓÉ×ÊÉîǶÈëʽϵͳר¼ÒÄⶨ,Ä¿µÄÊÇ¿¼²éÈëÃż¶µÄǶÈëʽÈí¼þ¿ª·¢ÈËÔ± Gavin ShawÌṩÏêϸ½â´ð
±àÕß°´:·Ç³£»ù±¾¹ØÓÚCÓïÑÔµÄÎÊÌâ,Ò»¸öÐÅÏ¢Àà(¼ÆËã»ú,×ÊѶ¹¤³Ì,µç×Ó¹¤³Ì, ͨÐŹ¤³Ì)רҵµÄ±¾¿Æ±ÏÒµÉúÓ¦¸Ã´ïµ½µÄˮƽ¡£ÌâÄ¿²»ÄÑ,È«²¿¶¼ÄÜ¿ìËٵشðÍ꣬µ±È»Ò²ÐèÒªÒ»¶¨µ ......
2009-09-13 16:42:43
½ñÌìʵÏÖ¶ÑÕ»½á¹¹²¿·ÖµÄ´úÂ룬²¢ÓÃÒ»¼òµ¥³ÌÐò²âÊԳɹ¦¡£
stack.h:
#ifndef _STACK_H_
#define _STACK_H_
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#define STACK_INIT_SIZE 5
#define STACKINCREMENT 5
t ......
ͨ³££¬ÔÚCÓïÑÔµÄÍ·ÎļþÖо³£¿ÉÒÔ¿´µ½ÀàËÆÏÂÃæÕâÖÖÐÎʽµÄ´úÂ룺
#ifdef __cplusplus
extern "C" {
#endif
/**** some declaration or so *****/
#ifdef __cplusplus
}
#endif /* end of __cplusplus */
ÄÇô£¬ÕâÖÖд·¨Ê²Ã´ÓÃÄØ£¿Êµ¼ÊÉÏ£¬ÕâÊÇΪÁËÈÃCPPÄܹ»ÓëC½Ó¿Ú¶ø²ÉÓõÄÒ»ÖÖÓï·¨ÐÎʽ¡£Ö®ËùÒÔ²ÉÓÃÕâÖÖ·½Ê½ ......