lib.c の memset について

40 views
Skip to first unread message

dokunira

unread,
Jul 7, 2023, 10:55:00 PM7/7/23
to KOZOS友の会
初めまして。

12ステップで作る組み込みOS自作入門を読ませていただいているものです。

lib.c の memset は

```
void *memset(void *b, int c, long len)
{
  char *p;
  for (p = b; len > 0; len--)
    *(p++) = c;
  return b;
}
```

となっていますが、int c ではなく、char c ではないのはなぜでしょうか?
int の場合、アドレス4つ分書かれてしまわないのでしょうか。それとも、char  *pに合わせて、キャストされるのでしょうか?


dokunira

unread,
Jul 7, 2023, 11:02:39 PM7/7/23
to KOZOS友の会

cのmemsetも引数はintのようですが、内部でunsigned charへの変換を行なっているようです。

2023年7月8日土曜日 11:55:00 UTC+9 dokunira:
Reply all
Reply to author
Forward
0 new messages