완료됨
*(DWORD*)

(DWORD) 에서 이 ()이것들은 뭐하는 애들인가요..? 너무 기초적인 질문이라 좀 부끄럽지만.. 질문해봅니다

작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 1
2dedce
워게임 고인물
2dedce
워게임 고인물

C언어에서 형(타입, type)을 변환할 때 ()안에 형을 넣고 값 앞에 씁니다. C언어의 문법입니다.

DWORD x = 2; // DWORD는 4바이트 부호없는 정수형입니다 (unsigned int랑 동일)

DWORD *ptr1 = &x; // ptr1의 타입은 DWORD *이고 x를 가리킨다

void *ptr2 = ptr1; // void*는 모든 타입의 포인터가 될 수 있다

// DWORD y = *ptr2; // 에러임. void* 는 역참조가 안됨
// error: void value not ignored as it ought to be

DWORD y = *(DWORD *)ptr2; // ptr2를 DWORD *로 형변환 시키고 역참조해서 y에는 2가 들어감
2022.03.23. 20:35