已知strcpy函数的原型是:
- 解释为什么偠返回char *
- 假如考虑dst和src内存重叠的情况strcpy该怎么实现
- 源字符串参数用const修饰,防止修改源字符串
- 不检查指针的有效性,说明答题者不注重代码嘚健壮性
- 检查指针的有效性时使用assert(!dst && !src);char *转换为bool即是类型隐式转换,这种功能虽然灵活但更多的是导致出错概率增大和维护成本升高。
- 检查指针的有效性时使用assert(dst != 0 && src != 0);直接使用常量(如本例中的0)会减少程序的可维护性而使用NULL代替0,如果出现拼写错误编译器就会检查出来。
- 忘记保存原始的strdstt值
循环体结束后,dst字符串的末尾没有正确地加上'\0'
返回dst的原始值使函数能够支持链式表达式。
返回strSrc的原始值是错误的
其一,源字符串肯定是已知的返回它没有意义。
其二不能支持形如第二例的表达式。
其三把const char *作为char *返回,类型不符编译报错。