맨페이지에서 대괄호 안의 텍스트 점 이해

맨페이지에서 대괄호 안의 텍스트 점 이해

일부 매뉴얼 페이지에서는 다음과 같습니다.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더 복잡합니다. keysize 를 가리키는 단일 객체 size, 각 size 를 가리키는 요소 배열 base, 그리고 size 객체에 대한 포인터를 사용하여 함수가 호출됩니다.nmembsizecomparsize

답변2

문서 계속

memchr()함수는 s가 가리키는 메모리 영역의 처음 n바이트를 스캔하여 c의 첫 번째 인스턴스를 찾습니다.

따라서 이것이 말하는 것은 n가리키는 위치의 바이트가 s고려된다는 것입니다.

관련 정보