C를 사용 하는 책 ( POSIX Threads by Butenhof, 1997)을 읽고 있는데 다음 줄을 보았습니다.
(void)free(data);
여기, data
할당 된 구조체에 대한 포인터입니다.
data = malloc(sizeof(my_struct_t));
결과 free
가 캐스트 된 이유는 무엇 void
입니까?
C에 대한 나의 이해에서 이것은 두 가지 이유로 이해되지 않는 것 같습니다.
- 자유 함수는 이미 반환
void
- 코드가 반환 값을 사용하지 않습니다 (변수에도 할당되지 않음)
이 책은 1997 년에 썼습니다. 이것은 일종의 유산입니까?
필자는 예제가 Digital Unix 4.0d에서 실행되었다고 언급하지만 그 결과를 사용하지 않을 경우 함수 결과를 캐스트해야 할 이유를 여전히 상상할 수 없습니다.
free()
책에서 에뮬레이션 할 필요가없는 이상한 것으로 캐스팅을 취급하십시오 . 옛날 옛적에 반쯤 관련이 있었지만 더 이상 관련이 없습니다.