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

求解c语言的一个简单内存拷贝有关问题

2012-11-09 
求解c语言的一个简单内存拷贝问题函数接口是这样的,不考虑异常void *memcpy(void *dest,const void *src,s

求解c语言的一个简单内存拷贝问题
函数接口是这样的,不考虑异常
void *memcpy(void *dest,const void *src,size_t count)
{}
求指点下,我新手。谢了

[解决办法]

C/C++ code
/****memcpy.c - contains memcpy routine**       Copyright (c) Microsoft Corporation. All rights reserved.**Purpose:*       memcpy() copies a source memory buffer to a destination buffer.*       Overlapping buffers are not treated specially, so propogation may occur.********************************************************************************/#include <cruntime.h>#include <string.h>#pragma function(memcpy)/****memcpy - Copy source buffer to destination buffer**Purpose:*       memcpy() copies a source memory buffer to a destination memory buffer.*       This routine does NOT recognize overlapping buffers, and thus can lead*       to propogation.**       For cases where propogation must be avoided, memmove() must be used.**Entry:*       void *dst = pointer to destination buffer*       const void *src = pointer to source buffer*       size_t count = number of bytes to copy**Exit:*       Returns a pointer to the destination buffer**Exceptions:*******************************************************************************/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;                src = (char *)src + 1;        }#endif  /* defined (_M_IA64) */        return(ret);} 

热点排行