memcpy,memset,memmove的使用与实现
2016-10-07 10:35
363 查看
void *memcpy( void *dest, const void *src,
size_t count
);
返回值:
memcpy returns the value of
dest.
参数:
dest
New buffer
src
Buffer to copy from
count
Number of characters to copy
Remarks
The memcpy function copies count bytes of src to
dest. If the source and destination overlap, this function does not ensure that the original source bytes in the overlapping region are copied before being overwritten. Use
memmove to handle overlapping regions.
实现:
void *my_memcpy(void *dst, const void *src, size_t count)
{
void *ret = dst;
char *pDst = (char *)dst;
char *pSrc = (char *)src;
while (count--) {
*pDst++ = *pSrc++;
}
return ret;
}
void *memset( void *dest, int c, size_t
count );
返回值:
memset returns the value of dest.
参数:
dest
Pointer to destination
c
Character to set
count
Number of characters
Remarks
The memset function sets the first count bytes of
dest to the character c.
实现:
void *my_memset(void *dst, int val, size_t count)
{
void *ret = dst;
char *pDst = (char *)dst;
while (count--) {
*pDst++ = (char)val;
}
return ret;
}
void *memmove( void *dest, const void *src, size_t
count );
返回值:
memmove returns the value of dest.
参数:
dest
Destination object
src
Source object
count
Number of bytes of characters to copy
Remarks
The memmove function copies count bytes of characters from
src to dest. If some regions of the source area and the destination overlap,
memmove ensures that the original source bytes in the overlapping region are copied before being overwritten.
实现:
void *my_memmove(void *dst, const void *src, int count)
{
void *ret = dst;
char *pDst = (char *)dst;
char *pSrc = (char *)src;
if (pDst > pSrc || pDst < pSrc + count) {
while (count--) {
*(pDst + count - 1) = *(pSrc + count - 1);
}
}
else {
while (count--) {
*pDst++ = *pSrc++;
}
}
return ret;
}
size_t count
);
返回值:
memcpy returns the value of
dest.
参数:
dest
New buffer
src
Buffer to copy from
count
Number of characters to copy
Remarks
The memcpy function copies count bytes of src to
dest. If the source and destination overlap, this function does not ensure that the original source bytes in the overlapping region are copied before being overwritten. Use
memmove to handle overlapping regions.
实现:
void *my_memcpy(void *dst, const void *src, size_t count)
{
void *ret = dst;
char *pDst = (char *)dst;
char *pSrc = (char *)src;
while (count--) {
*pDst++ = *pSrc++;
}
return ret;
}
void *memset( void *dest, int c, size_t
count );
返回值:
memset returns the value of dest.
参数:
dest
Pointer to destination
c
Character to set
count
Number of characters
Remarks
The memset function sets the first count bytes of
dest to the character c.
实现:
void *my_memset(void *dst, int val, size_t count)
{
void *ret = dst;
char *pDst = (char *)dst;
while (count--) {
*pDst++ = (char)val;
}
return ret;
}
void *memmove( void *dest, const void *src, size_t
count );
返回值:
memmove returns the value of dest.
参数:
dest
Destination object
src
Source object
count
Number of bytes of characters to copy
Remarks
The memmove function copies count bytes of characters from
src to dest. If some regions of the source area and the destination overlap,
memmove ensures that the original source bytes in the overlapping region are copied before being overwritten.
实现:
void *my_memmove(void *dst, const void *src, int count)
{
void *ret = dst;
char *pDst = (char *)dst;
char *pSrc = (char *)src;
if (pDst > pSrc || pDst < pSrc + count) {
while (count--) {
*(pDst + count - 1) = *(pSrc + count - 1);
}
}
else {
while (count--) {
*pDst++ = *pSrc++;
}
}
return ret;
}
相关文章推荐
- strcpy()、memcpy()、memmove()、memset()的实现
- strcpy()、memcpy()、memmove()、memset()的实现
- strcpy()、memcpy()、memmove()、memset()的实现
- strcpy()、memcpy()、memmove()、memset()的实现
- 函数实现-memcpy-strcpy-memmove-memset
- strcpy()、memcpy()、memmove()、memset()的实现
- strcpy()、memcpy()、memmove()、memset()的实现
- strcpy()、memcpy()、memmove()、memset()的实现
- strcpy()、memcpy()、memmove()、memset() 、strcmp()、strlen()、strcat()的实现
- C语言中memcpy、memset和memmove的实现
- 转载:函数实现-memcpy-strcpy-memmove-memset
- strcpy()、memcpy()、memmove()、memset()的实现
- strcpy()、memcpy()、memmove()、memset()的实现
- 关于memcpy、memset、memmove、strcpy、strncpy的使用
- memcpy,strcpy,memset,memmove的函数实现
- 笔试题 字符串函数的实现(strcpy, strcat, strcmp, memset, memcpy, memmove)
- memset ,memcpy ,memmove,strcpy 的根本区别 与实现
- strcpy()、memcpy()、memmove()、memset()的实现
- [转]strcpy()、memcpy()、memmove()、memset()的实现
- strcpy()、memcpy()、memmove()、memset()的实现