void 포인터가 전달되는 함수가 있습니다. 이 포인터는 int, char 또는 float가 될 수 있습니다. 나는 연관된 데이터를 통해 어떤 데이터 유형이 나에게 전달 될지 안다. 예를 들어, 아래처럼 내 함수가 모습입니다 :char 포인터, int 및 float의 끝 찾기
void * (int type, void * data);
내가 전달하고 무효 포인터가 원래 문자 유형 인 경우, 나는이 문자 형식으로 다시 캐스팅, 얼마나 많은 바이트를 결정하는 방법이있다 해당 포인터와 관련이 있습니까? 내 함수가 호출 될 경우 예를 들어, 다음과 같이
f(1, (void *)"Hello world");
와 나는 문자 포인터
char * p = (char *)data;
사용 얼마나 많은 바이트 내가 알아낼 수있는 방법이 있나요 다시 무효 포인터를 캐스팅? null 문자를 검색하고 원래 포인터에서 몇 바이트 떨어져 있는지 계산해야합니까? int와 float의 크기를 알아 내기 위해 무엇을해야합니까?
3r 인수가 필요하거나 int와 float에 대한 terminatror 값을 문서화하십시오. – qPCR4vir