| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 724 人关注过本帖
标题:函数memcpy求助?
只看楼主 加入收藏
jlu_uestc
Rank: 2
等 级:论坛游民
帖 子:30
专家分:14
注 册:2011-4-14
结帖率:71.43%
收藏
已结贴  问题点数:10 回复次数:4 
函数memcpy求助?

void * __cdecl memcpy (void * dst,const void * src,size_t count )
{        void * ret = dst;

#if defined (_M_IA64)
        {
        __declspec(dllimport)
        void RtlCopyMemory( void *, const void *, size_t count );
        RtlCopyMemory( dst, src, count );
        }
#else  /* defined (_M_IA64) */
        /*
         * copy from lower addresses to higher addresses
         */
        while (count--) {
                *(char *)dst = *(char *)src;
                dst = (char *)dst + 1;      //这里强制转换为char*类型是什么意思,为什么要转换呢?
                src = (char *)src + 1;
        }
#endif  /* defined (_M_IA64) */

        return(ret);
}

求解释?
搜索更多相关主题的帖子: higher count 
2011-09-24 21:26
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:2 
我猜是这样的
比如你用的memcpy()参数可以是任意指针。
转换为空指针。
空指针是不能运算。。。
因为char是 一个字节。。。所以就用char 。。。

用心做一件事情就这么简单
2011-09-24 21:43
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:2 
回复 楼主 jlu_uestc
因为这个吧const修饰符

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-24 21:49
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:2 
ANSI标准里是不允许void *指针变量进行运算的,所以要转换为char *,但GCC允许这样。

My life is brilliant
2011-09-25 09:04
jlu_uestc
Rank: 2
等 级:论坛游民
帖 子:30
专家分:14
注 册:2011-4-14
收藏
得分:0 
回复 4楼 lz1091914999
转换成其他的不行吗?
比如 (int *)
2011-09-25 09:29
快速回复:函数memcpy求助?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014476 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved