Files
magnitudelib/include/memory.h

46 lines
1.2 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// 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