memset 手册说明:int 类型还是常量字节?
memset manual description: int type or constant byte?
我有一个关于 memset
及其 manual's entry 的问题。这是我在 memset
:
的手册中看到的内容
void *memset(void *s, int c, size_t n);
[...]
DESCRIPTION
The memset() function fills the first n bytes of the memory area
pointed to by s with the constant byte c.
[...]
手册说with the constant byte c
,但c
是一个整数,其大小实际上取决于几个因素(编译器,体系结构...)。
一般情况下,sizeof(int) > 1
(通常是4
)。
我的问题是:为什么 c
不是 char
,它的 sizeof
总是 1
因此对应一个字节 ?
然后,边界情况下 memset 的 'real' 行为是什么(未定义?)?
对于边界情况,我的意思是例如 sizeof(int) = 4
和 n=7
.
的情况
标准有更好的措辞。
引用 C11
,第 7.24.6.1 章,
The memset
function copies the value of c
(converted to an unsigned char
) into each of the first n characters of the object pointed to by s
.
我有一个关于 memset
及其 manual's entry 的问题。这是我在 memset
:
void *memset(void *s, int c, size_t n);
[...]
DESCRIPTION
The memset() function fills the first n bytes of the memory area pointed to by s with the constant byte c.
[...]
手册说with the constant byte c
,但c
是一个整数,其大小实际上取决于几个因素(编译器,体系结构...)。
一般情况下,sizeof(int) > 1
(通常是4
)。
我的问题是:为什么 c
不是 char
,它的 sizeof
总是 1
因此对应一个字节 ?
然后,边界情况下 memset 的 'real' 行为是什么(未定义?)?
对于边界情况,我的意思是例如 sizeof(int) = 4
和 n=7
.
标准有更好的措辞。
引用 C11
,第 7.24.6.1 章,
The
memset
function copies the value ofc
(converted to anunsigned char
) into each of the first n characters of the object pointed to bys
.