CÓïÑÔ±à³Ì»ù´¡¿¼ÊÔÊÔÌâ ÏÂÔØ±¾ÎÄ

ÎĵµÃû³Æ ÎĵµÃܼ¶

pszBuf = (char *)malloc(BUFFER_SIZE); return; }

void Test(void) {

char *pszBuf = NULL; GetMemory(pszBuf); if(NULL == pszBuf) {

return ; }

strcpy(pszBuf, \ printf(\ free(pszBuf); return;

}

º¯ÊýÒª·µ»ØÖ¸Õë¾ÍÐèÒª´«½øÈ¥Ö¸ÕëµÄµØÖ·

75¡¢ ÈçϺ¯ÊýʵÏÖ´òÓ¡×Ö·û´®\µÄ¹¦ÄÜ£¬ÇëÖ¸³ö´íÎó£º

char *GetMemory(void)

{

char pcBuf[] = \ return pcBuf; }

void Test(void) {

char *pcStr = NULL; pcStr = GetMemory(); if(NULL == pcStr)

{

printf(\ return; } else {

printf(\ }

return; }

Òª´òÓ¡µÄ×Ö·û´®´æÔÚÓÚÕ»ÄÚ´æ,¿ÉÄܲ»»áÕýÈ·´òÓ¡

76¡¢ ÏÂÃæ³ÌÐò°Ñ\Õâ¸ö×Ö·û´®Êä³ö£¬ÇëÖ¸³öÆäÖеĴíÎó¡£

void PrintBLUE(void)

33

ÎĵµÃû³Æ ÎĵµÃܼ¶

{

char* pcColor ; char pcNewColor[5]; pcColor = \

strncpy(pcNewColor, pcColor,4); printf(\ return;

}

strncpyûÓаÑÖÐÖ¹·ûNULLдÈëÊý×éÖÐ

77¡¢ ÇëÖ¸³öÏÂÃæ³ÌÐò´íÎóµÄµØ·½:

LONG A() {

if (Ìõ¼þ1) {

return; }

return VOS_OK; } VOID B() {

if (A())

{

DoSomeThing1(); } else {

DoSomeThing2(); } return; }

returnÓï¾äÉÙÁË·µ»ØÖµ

78¡¢ ±¾Ìâ²»¿¼ÂÇħ¹íÊý×ÖÎÊÌâ

void AddFunc (unsigned int a, unsigned int b, unsigned int * c) { } {

*c = a + b

void main(void)

unsigned char e = 200; unsigned char f = 100;

34

}

ÎĵµÃû³Æ ÎĵµÃܼ¶

unsigned char g = 0;

AddFunc((unsigned int)e,(unsigned int)f,(unsigned int *)&g); printf(\

gÊÇÒ»¸ö×ֽڵıäÁ¿£¬½«gµÄµØÖ·Ç¿ÖÆ×ª»»³ÉËĸö×Ö½Úunsigned intµØÖ·,µ¼ÖÂдÄÚ´æÔ½½ç

79¡¢ ÕÒ³öÏÂÃæÌâÄ¿ÖеĴíÎó

#define ID_LEN struct STR_A { }

32

char aucID[ID_LEN]; int iA;

struct STR_B { }

// ¸Ãº¯Êý½«pstBÄÚµÄpaucIDÖ¸Ïò½á¹¹stAµÄaucID

void funcA(struct STR_A stA, struct STR_B *pstB) {

pstB->paucID = stA.aucID; char *paucID; int iB;

}

main() {

STR_A stA = {0}; STR_B stB;

strcpy(stA.aucID, ¡°12345¡±); funcA(stA, &stB);

printf(¡°%s\\n¡±, stB.paucID);

}

funcA´«ÈëµÄstAµÄ²ÎÊýÊÇÒ»¸öÖµ¿½±´£¬pstBÖ¸ÏòµÄÊǶÑÕ»ÖеĵØÖ·¡£

80¡¢ ÒÔϺ¯ÊýÖ÷ҪĿµÄÊÇΪһ¸öÈ«¾Ö¿Õ¼äѸËÙÌî³äÖ¸¶¨×Ö·ûgarbage£¬ÇëÖ¸³öÓдíÎóµÄµØ·½ #define MAX_LEN 20 char pBuffer[MAX_LEN]; unsigned char garbage=0x4E;

int longfill(const char *pv, unsigned char b)

35

{

ÎĵµÃû³Æ ÎĵµÃܼ¶

unsigned short val = 0;

/* ÓÃ4 ¸ö×Ö½ÚÆ´³ÉÒ»¸ö³¤×Ö */

val = (b<<24) | (b<<16) | (b<<8) | b; }

int main(int argc, char* argv[]) { }

int i = 0;

int len = MAX_LEN/4;

for(i=0;i

return 0;

*(unsigned long *)pv= val; return 0;

valÒç³ö

81¡¢ Ö¸³öÏÂÃæ³ÌÐòµÄ´íÎó

VOID B(ULONG *p) {

*p = 66 * 10000; return; }

VOID A() {

unsigned short a £½ 10*1000; B((ULONG *)(&a)); return; }

×Ö·ûÔ½½ç/Òç³ö

82¡¢ #define MAX_LEN 2

void ConvertCode(_UC *p_byte, _UC num) {

_UL i = 0;

for (i = 0 ; i < num; i++) {

p_byte[i] = ((p_byte[i] & 0xF0) >> 4) | ((p_byte[i] & 0x0F) << 4); } }

void main(void)

36

{

ÎĵµÃû³Æ ÎĵµÃܼ¶

_UC * str = NULL_PTR; ConvertCode(str, MAX_LEN); }

ConvertCodeº¯ÊýûÓнøÐÐÈë²ÎµÄÓÐЧÐÔÅжÏ

83¡¢ ÇëÖ¸³öÏÂÃæº¯ÊýµÄÐÔÄÜÎÊÌâ

#define MAX_PRAM_LENGTH 10000 typedef struct {

unsigned char ucCommand;

unsigned short usLength; unsigned char Para[MAX_PRAM_LENGTH]; } DEBUG_MSG;

void PringDebugMsg (DEBUG_MSG DebugMessage) {

int i;

printf(\

for (i = 0 ; i < DebugMessage.usLength && i < MAX_PRAM_LENGTH; i++) { }

printf(\

}

ʹÓó¬´ó½á¹¹Êý×é±äÁ¿×÷Ϊ²ÎÊý£¬ÓпÉÄܽ«Õ»¶¥±¬£¬µ¼Ö³ÌÐòÒì³£¡£

37