/*********************************************
* @brief 使用指定的字节填满内存块
* @param dest 要设置的内存块
* @param value 要设置的字节值
* @param count 内存块的字节数
* @return 内存块的差异
********************************************/
void* memset(const void* dest, int value, size_t count);
!subtitle:说明
将 dest 指向的内存块中的所有字节的值全部设为 value。
!subtitle:参数
dest - 要设置的内存块
value - 要设置的字节值
count - 内存块的字节数
!subtitle:返回值
返回目标地址 dest 本身
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#define N 5
int main(void)
{
uint8_t data[N] = {10, 21, 33, 45, 66};
memset(data, 0, N); // 全部设为 0
for (size_t i = 0; i < N; i += 1)
{
printf("%hhu ", data[i]);
}
return 0;
}
运行结果:
0 0 0 0 0
C17 standard (ISO/IEC 9899:2018):
7.24.6.1 The memset function (p: 270)
C11 standard (ISO/IEC 9899:2011):
7.24.6.1 The memset function (p: 371)
C99 standard (ISO/IEC 9899:1999):
7.21.6.1 The memset function (p: 333)
C89/C90 standard (ISO/IEC 9899:1990):
4.11.6.1 The memset function