, 그래서 사람이 구조를 무엇을 말해 줄 수주십시오 (무효 * 자체) 수행C funcname에
void funcName(void * self)
{ ... }
를 지금까지 내가 가 funcname에가 알 수없는 포인터를 수신 이해로 데이터와이 기능은 아무것도에게
을받지 않습니다하지만 무효 * 자기
, 그래서 사람이 구조를 무엇을 말해 줄 수주십시오 (무효 * 자체) 수행C funcname에
void funcName(void * self)
{ ... }
를 지금까지 내가 가 funcname에가 알 수없는 포인터를 수신 이해로 데이터와이 기능은 아무것도에게
을받지 않습니다하지만 무효 * 자기
가있는 이유는 무효 포인터를받는 함수입니다 - 특정 유형이없는 포인터. Void 포인터 유형을 사용하면 모든 데이터 유형에 대한 포인터를 이와 같이 선언 된 함수에 전달할 수 있습니다. 함수는 데이터를 읽거나 쓰기 전에 포인터를 적절한 형식으로 캐스팅하거나 포인터를 void*
을 사용하는 다른 함수로 전달해야합니다.
모든 포인터는 암시 적으로 또는 명시 적으로 void*
으로 캐스팅 할 수 있습니다.
int *ptr = malloc(100*sizeof(int));
funcName(ptr); // No error
그런 다음 다른 포인터 유형과 동일한 기능을 호출 할 수 있습니다 :
struct mystruct_t *ptr = malloc(100*sizeof(mystruct_t));
funcName(ptr); // Again, no error
포인터, self
의 이름에서 판단, 그것은 가능성이 예를 들어,이 같은 funcName
를 호출 할 수 있습니다 함수가 C에서 사용할 수있는 구조체를 사용하여 객체 지향 스타일 프로그래밍을 에뮬레이트하려고합니다. 포인터가 데이터에 암묵적으로 전달되는 대신 멤버 함수가 데이터에 대한 포인터를 명시 적으로 전달합니다. 포인터는 종종 this
또는 self
이라고합니다.
다음 내용을 읽어 보시기 바랍니다. http://stackoverflow.com/questions/692564/concept-of-void-pointer-in-c-programming –