// // Created by dongl on 25-7-30. // #ifndef LIBK_MEMORY_H #define LIBK_MEMORY_H #include "stddef.h" // for size_t #ifdef __cplusplus extern "C" { #endif // 复制 n 字节从 src 到 dest(不处理重叠) void *memcpy(void *dest, const void *src, size_t n); // 填充 s 指向的内存块,共 n 字节为 c 值 void *memset(void *s, const int c, size_t n); // 比较两个内存块 s1 和 s2 的前 n 字节 int memcmp(const void *s1, const void *s2, size_t n); // 复制 n 字节从 src 到 dest,安全处理重叠区域 void *memmove(void *dest, const void *src, size_t n); // 清零 n 字节内存块 void bzero(void *s, size_t n); // 在内存块中查找第一次出现字符 c void *memchr(const void *s, int c, size_t n); // 交换两个内存区域内容(长度为 n 字节) void memswap(void *a, void *b, size_t n); // 高速 memcpy 实现(使用 uint32_t)——可选 void *memcpy32(void *dest, const void *src, size_t n); // 高速 memcmp 实现(使用 uint16_t)——可选 int memcmp16(const void *s1, const void *s2, size_t n); #ifdef __cplusplus } #endif #endif // LIBK_MEMORY_H