最近几日,闲得很。看了C语言大牛总结的提升内力的要点。于是乎,有了提升自己C语言功力的冲动。
//自己写的strcpy函数
void m_strcpy(char *strDest,const char *strSrc)
{
assert((strDest != NULL) && (strSrc != NULL));//对源地址和目标地址加非0断言
while((*strDest++ = *strSrc++) != '/0');
}
/*
char *m_strcpy(char *strDest, const char *strSrc)//实现链式操作,将目的地址返回
{
char *address;
assert((strDest != NULL) && (strSrc != NULL));
address = strDest;
while((*strDest++ = *strSrc++) != '/0');
return address;
}*/
//strlen函数
int m_strlen(const char *str)
{
int len =0;
assert(str != NULL); //断言字符串地址不为空
while((*str++) != '/0') //不断判断当前字符时候为空,不为空则长度自增
{
len++;
}
return len;
}
感悟:合理使用assert可以有效的避免程序的bug,使代码的可读性更强,增强了代码的健壮性。
浮点数与零值进行比较
//浮点型变量并不精确,所以不能将float变量用“==”或“!=”与数字比较,应设法转化为“>=”或“<=”的形式
/*
#include <stdio.h>
int main()
{
float x=0;
const float EPSINON= 0.0001;
if((x >= -EPSINON ) && (x <= EPSINON))
printf("It's a zero/n");
else
printf("It's not a zero/n");
return 0;
}*/