C로 편안하게 시작한 다음 유형 캐스팅을 실행했습니다. I는 *가 .H 파일구조체에 void 포인터를 캐스팅
struct data {
int value;
char *label;
};
에 정의 다음 경우 내가 사용할 수 있도록 내가 구조체에 무효 포인터를 캐스팅 어떻게 다른 * .H 파일
# define TYPE void*
이 변수 "TYPE val"이 함수로 전달됩니까? 예를 들어 TYPE val이 가리키는 값을 활용하려는 경우 다른 값으로 전달할 수 있도록 어떻게 캐스팅해야합니까?
'#define TYPE void *'은 좋지 않은 아이디어입니다. 적어도 typedef이어야합니다. 다음 선언문에서 일어날 일을 고려해보십시오 :'TYPE x, y;'또는'const TYPE x;'. – jamesdlin
또한'void *'포인터와 C를 다루는 경우 명시 적 변환을 수행 할 필요가 없습니다. C는'void *'포인터를 * 암시 적으로 * 캐스트 할 수 있습니다 : void * p = ...; 구조체 데이터 * val = p;'. – jamesdlin
@jamesdlin 나는 그것이 나쁜 생각에 동의한다. 그러나 그것은 나의 생각이 아니다. 그래서 나는 그것과 함께 가야한다. 그래서 'TYPE val'이 void 포인터로 함수에 전달 될 때 단순히 struct data * temp = val;을 선언 한 다음 temp를 함수에 전달하면 temp-> 값? – user1852050