一部のマニュアルページでは、次のようになります。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]
?もう一つのことはどういう意味ですか?
答え1
配列またはポイントは、オブジェクト(または組み合わせ)のサイズを表します。例えば、
void *memchr(const void s[.n], int c, size_t n);
s
書き込みが書き込まれ、バイト配列(またはそれ以上)をconst void * s
指します。n
これこのシンボルを紹介すると約束します。C99 では VLA 構文を参照しています。対応する構文先行ポイントを使用せず、使用する前にサイズパラメータを宣言する必要があります(私の知る限り効果はありませんvoid *
)。
このタイプの構文の有効な例は次のとおりです。
int main(int argc, char * argv[argc + 1]);
宣言はbsearch
より複雑です。key
size を指す単一のオブジェクトsize
、各 size を指す要素の配列base
、および size オブジェクトへのポインタを使用して関数が呼び出されます。nmemb
size
compar
size
答え2
文書を続ける
この
memchr()
関数は、sが指すメモリ領域の最初のnバイトをスキャンして、cの最初のインスタンスを見つけます。
したがって、これが言うのは、n
指す位置のバイトがs
考慮されることです。