사과는 다소 무식한 초보자 질문입니다.코어 그래픽 함수/C 왜 호출 된 함수가 전송 된 배열을 채 웁니까?
CGDirectDisplayID displays[10];
uint32_t numDisplays;
CGGetOnlineDisplayList(10, displays, &numDisplays);
위 함수는 displays [] 배열을 채우고 numDisplays에 결과 (온라인 표시 수)를 반환합니다. 다음과 같이 헤더의 정의는 다음과 같습니다
CG_EXTERN CGError CGGetOnlineDisplayList(uint32_t maxDisplays,
CGDirectDisplayID *onlineDisplays, uint32_t *displayCount)
CG_AVAILABLE_STARTING(__MAC_10_2, __IPHONE_NA);
우리가 '& numDisplays'사용하는 이유 이해 : 그것은 직접 변경할 수 있도록 우리가 기능을 변수의 주소를 부여됩니다. 그런데 배열과 같은 피연산자를 사용하지 않는 이유는 무엇입니까? numDisplays를 처리하는 것과 같은 방식으로 처리해야하지 않습니까? 함수에 주소를 전달하지 않을 때 함수는 배열을 채우는 것을 어떻게 관리합니까?
추가하려면 함수 "GCGetOnlineDisplayList"에 배열에 포함 된 요소의 수 (이 경우 10 개)를 지정해야합니다. 배열의 시작 주소 만 인식하며 그 밖의 것은 없습니다. 첫 번째 매개 변수를 사용하여 크기를 결정합니다. – Inisheer