我目前正在重新编程一些C库.所以我的问题是:为什么memchr
需要一个const void *s
指针,而不仅仅是一个字符指针?
我知道你可能可以搜索其他东西,但是这个函数的字面意思是memchr,那么为什么要使用空指针呢?
提前谢谢!
我目前正在重新编程一些C库.所以我的问题是:为什么memchr
需要一个const void *s
指针,而不仅仅是一个字符指针?
我知道你可能可以搜索其他东西,但是这个函数的字面意思是memchr,那么为什么要使用空指针呢?
提前谢谢!
C的早期开发涉及大量将事物作为单个字节处理,并允许程序员访问表示对象的字节.memchr
这个名字反映了这段历史,现在不能轻易改变.
void
被添加到语言中,以提供一种类型,从某种意义上说,它代表"某种东西存在,但这是灵活的"memchr
的第一个参数的类型为const void *
,因为 routine 可用于搜索任何类型的对象中的字节,而不必搜索主要是字符数组的对象.