언리얼 - C++ 20 : void

김정환·2025년 3월 20일

Unreal C++

목록 보기
20/37

void

함수의 반환값이 없을 경우 void를 사용.
별도로 return 없어도 됨.

  • void가 포인터와 섞일때가 있음

void 포인터

void* pVoid = nullptr;

float* pFloat = nullptr;	// 역참조 시, 이 주소의 값을 float으로 사용하겠다.
  • void* pVoid : 포인터 변수
    • 원본의 값에 대해 무엇으로 해석할지 정하지 않은 것.
    • 정해지지 않았기 때문에 어떤 주소의 값이든 다 받을 수 있음.
void* pVoid = nullptr;

int a = 0;
float f = 0.f;
double d = 0.;
long long ll = 0;

pVoid = &a;
pVoid = &f;
pVoid = &d;
pVoid = ≪

*pVoid;		// 불가능
pVoid + 1;	// 불가능
  • 주소를 넣었을 때, 주소의 원형을 특정 데이터타입으로 해석할 수 없어서 아무나 받을 수 있음.
    그렇기 때문에 역참조는 불가능함

특징

  1. 원본의 자료형을 정하지 않은 포인터.
  2. 다른 타입의 자료형 주소를 다 받을 수 있다.
  3. 단, 주소에 대해 해석할 자료형이 없으므로 역참조는 불가능하다.
    • 이때 주소 연산도 안됨.
      pVoid + 1 : 자료형의 크기를 알 수 없으므로 다음 주소가 무엇인지 알 수 없음.

동적할당 전, 포인터 개념을 유의해야함

profile
만성피로 개발자

0개의 댓글