함수 포인터를 선언 할 때 읽는 한, 왼쪽 또는 오른쪽에 할당이 없습니다. 하지만 C 소스 파일에 여러 함수 포인터를 가지고 모두가 아래와 같이 할당 형태로 사용됩니다C 함수 포인터 할당
void (*pbindRemoveDev)(zAddrType_t *Addr) = (void*)NULL;
아무도 날 (무효 *) NULL 부분을 이해하는 데 도움이 수 있습니까?
이것은 임베디드 코드입니다.
int a;
을 그러나 여기 유형은 다음과 같습니다 :
는 * 함수 선언에 대한 초기화 구문이 없다 : 아래
는 함수 포인터 초기화 예입니다. 그러나 포인터 * 변수는 항상 초기화 할 수 있습니다. – jxh함수 __pointer__는 함수 __definition__ (또는 프로토 타입 선언)과 다릅니다. –
도대체 누가'NULL'을'void * '로 던집니까? C에서는 완전히 중복되어 있습니다 ('NULL'은 이미 무효 포인터입니다). C++에서는 캐스트가 void 포인터에서 다른 포인터로의 암시 적 변환이 없으므로 캐스트가 중단됩니다. – delnan