46 lines
1.2 KiB
C
46 lines
1.2 KiB
C
//
|
||
// 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
|