c语言memcpy函数实现
作者:野牛程序员:2023-12-04 15:11:17C语言阅读 2510
memcpy
函数用于在C语言中从一个内存地址复制一定数量的字节到另一个地址。以下是一个简单的 memcpy
函数的实现:
void *memcpy_custom(void *dest, const void *src, size_t n) { char *d = dest; const char *s = src; while (n--) { *d++ = *s++; } return dest; }
这个简单的实现通过逐字节复制源内存地址中的数据到目标内存地址,直到复制了指定的字节数 n
。在实际的应用中,为了提高性能,通常会使用一些优化手段,例如按字长拷贝或调用底层优化的汇编指令。
#include <stdio.h> #include <stdlib.h> void *memcpy_custom(void *dest, const void *src, size_t n) { char *d = dest; const char *s = src; while (n--) { *d++ = *s++; } return dest; } int main() { // Example of using memcpy_custom int src[] = {1, 2, 3, 4, 5}; int dest[5]; size_t num_elements = sizeof(src) / sizeof(src[0]); size_t num_bytes = num_elements * sizeof(src[0]); // Copy contents of src to dest using memcpy_custom memcpy_custom(dest, src, num_bytes); // Print the contents of dest for (size_t i = 0; i < num_elements; ++i) { printf("%d ", dest[i]); } return 0; }
此示例中,memcpy_custom
函数用于将整数数组 src
的内容复制到另一个数组 dest
中
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892