문제

좋은 설명을 찾았지만 찾을 수 없습니다.

나는 직접 글을 쓸 수 있지만 더 나은 사람이라면 선호합니다. 영어 의견에서 Zan Lynx를 위해 이것을 설명하는 데 도움이 될 수 있습니다. 여기.

... 그리고 어딘가에 좋은 설명이 있어야하는 것 같습니다. 왜 여기에하지 않습니까?

도움이 되었습니까?

해결책

라이브러리가 프로그램을 대신하여 일부 데이터 구조를 관리하는 경우 (예 : GUI 애플리케이션의 Windows는 OS에서 관리합니다) 일반적으로 해당 구조의 내용을 비공개로 유지합니다. 그러나 일반적으로 프로그램이 해당 구조를 사용하는 것과 관련된 일부 추가 데이터를 유지하는 것이 유용합니다. 따라서 라이브러리는 종종 필드에 대한 액세스를 제공합니다 (종종 사용자 데이터) 각 구조와 함께 저장합니다.

프로그램별로 사용자 데이터 필드를 일반적으로 사용하는 것은 프로그램이 라이브러리가 구조를 작성하도록 요청할 때마다 일부 메모리를 할당하고 라이브러리가 제공 한 사용자 데이터 필드에 해당 메모리에 대한 포인터를 저장하는 것입니다. userData 포인터.

다른 팁

보다 sqlite3_exec () - 검색된 각 행의 콜백 (세 번째 매개 변수)을 호출하고 제공하는 포인터 (제 4 매개 변수)를이 콜백에 전달합니다. 이것은 원하는 객체에 대한 포인터가 될 수 있습니다. 뾰족한 객체에 액세스하기 전에 적절하게 캐스트해야합니다. 이 객체를 userData 객체라고하며 포인터는 userData 포인터라고합니다.

sqlite3_exec ()의 경우 요청 완료시 검색된 모든 테이블 행을 저장하는 컨테이너에 포인터를 전달할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top