为什么 memchr() 采用 void 指针作为输入?

raw*_*ber 2 c pointers void-pointers

我目前正在重新编程一些 C 库。所以我的问题是:为什么memchr采用const void *s指针而不是简单的字符指针?

我发现您可能可以搜索其他内容,但该函数实际上称为memchr那么为什么要使用 void 指针呢?

提前致谢!

Eri*_*hil 5

C\xe2\x80\x99 的早期开发涉及大量将事物视为单独字节并允许程序员访问表示对象的字节。该名称memchr反映了这段历史,现在不能轻易更改。

\n

void被添加到语言中以提供一种类型,在某种意义上表示 \xe2\x80\x9c 某物存在,但这很灵活。\xe2\x80\x9d 第一个参数具有类型,因为memchr例程const void *可用于搜索对于任何类型对象中的字节,不一定是主要是字符数组的对象。

\n