首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

对《高质量C++编程指南》strcpy 函数的疑问解决办法

2012-03-08 
对《高质量C++编程指南》strcpy 函数的疑问在林锐博士的《高质量C++编程指南》中有道题目是编写strcpy函数,书

对《高质量C++编程指南》strcpy 函数的疑问
在林锐博士的《高质量C++编程指南》中有道题目是编写strcpy函数,书上给出答案是

char   *strcpy(char   *strDest,   const   char   *strSrc);
{
        assert((strDest!=NULL)   &&   (strSrc   !=NULL));
        char   *address   =   strDest;
        while(   (*strDest++   =   *   strSrc++)   !=   ‘\0’   )     //     #1
        return   address   ;
}

在#1处使用的是++后缀版本,每次循环都会产生2个临时变量,能不能改成以下

char   *strcpy(char   *strDest,   const   char   *strSrc);
{
        assert((strDest!=NULL)   &&   (strSrc   !=NULL));
        char   *address   =   strDest;
        while(*strSrc   !=   '\0 ')
        {
                  *strDest   =   *strSrc;
                  ++strDest;
                  ++strSrc;
        }
        *strDest   =   '\0 ';
        return   address   ;
}

这样就不会有临时变量问题了,不知道我这个做法对不对,请大家多指教~~



[解决办法]
对于C++内建的类型
++i; i++效果都差不多
[解决办法]


如果你懂汇编,你可以看看汇编代码

其实经过编译器优化后没什么区别
[解决办法]
如果你是重载类的这类运算符
效率上差的才会多写。

热点排行