笔试中考查很多滴4句话,你懂了吗?

来源:互联网 发布:淘宝上的美瞳能买吗 编辑:程序博客网 时间:2024/04/29 23:54
char* myStrCpy(char* strDest, const char* strSrc)  
{  
    assert( (strDest != NULL) && (strSrc != NULL) ); //易出错点1  
    char* strRest = strDest;                                           //易出错2  
    while((*strDest++ = *strSrc++) != '\0');    //=='\0'则退出.  
    return strRest;  

}

关于assert的那点事儿,你懂了吗??

2222222222来自百度知道的答案,仅供参考:::::::::

//复制不重叠的内存块 
void memcpy(void *pvTo, void *pvFrom, size_t size) 

void *pbTo = (byte *) pvTo; 
void *pbFrom = (byte *) pvFrom; 
assert( pvTo != NULL && pvFrom != NULL ); 
while(size - - > 0 ) 
*pbTo + + = *pbFrom + + ; 
return (pvTo); 

assert不是一个仓促拼凑起来的宏,为了不在程序的Debug版本和Release版本引起差别,assert不应该产生任何副作用。

所以assert不是函数,而是宏。程序员可以把assert看成一个在任何系统状态下都可以安全使用的无害测试手段。 
以下是使用断言的几个原则: 
1)使用断言捕捉不应该发生的非法情况。不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要作出处理的。 
2)使用断言对函数的参数进行确认。 
3)在编写函数时,要进行反复的考查,并且自问:“我打算做哪些假定?”一旦确定了的假定,就要使用断言对假定进行检查。 
4)进行防错性的程序设计,但要记住这种编程风格会隐瞒错误。当进行防错性编程时,如果“不可能发生”的事情的确发生了,则要使用断言进行报警。



0 0