在一些手册页中,例如https://man7.org/linux/man-pages/man3/memchr.3.html,我看到以下内容:
void *memchr(const void s[.n], int c, size_t n);
例如在https://man7.org/linux/man-pages/man3/bsearch.3.html上,
void *bsearch(const void key[.size], const void base[.size * .nmemb],
size_t nmemb, size_t size,
int (*compar)(const void [.size], const void [.size]));
[.n]
、 [.nmemb]
和术语的意义或解释是什么[.size]
?还有点是什么意思?
它们表示数组或指向的对象(或组合)的大小。例如,在
s
历史上会被写入const void * s
,并指向一个n
字节数组(或更多)。引入此表示法的提交引用了 VLA 语法,尽管在 C99 中相应的语法不使用前导点,并且要求在使用之前声明大小参数(据我所知,对于 无效void *
) 。这种类型语法的一个有效示例是
声明
bsearch
更为复杂:key
指向 size 的单个对象size
,指向每个 size 的元素base
数组,并且使用指向 size 的对象的指针调用该函数。nmemb
size
compar
size
文档继续
所以它告诉你的是,
n
来自 指向的位置的字节s
被考虑