다음을 통해 공유


형식 캐스팅 변환

형식 캐스팅을 사용하여 명시적으로 형식을 변환할 수 있습니다.

구문

:
unary-expression
( type-name ) cast-expression

:
specifier-qualifier-list abstract-declaratoropt

type-name은 형식이며 cast-expression은 해당 형식으로 변환할 값입니다. 형식 캐스트를 사용하는 식은 l-value가 아닙니다. cast-expressiontype-name 형식의 변수에 할당된 것처럼 변환됩니다. 할당에 대한 변환 규칙(할당 변환에 개괄되어 있음)은 형식 캐스팅에도 적용됩니다. 다음 표에서는 임의의 형식으로 캐스팅될 수 있는 형식을 보여 줍니다.

대상 형식 잠재적 소스
정수 계열 형식 표 임의의 정수 형식 또는 부동 소수점 형식이나 개체에 대한 포인터
부동 소수점 산술 형식
개체에 대한 포인터 또는 void * 임의의 정수 형식, void *, 개체에 대한 포인터 또는 함수 포인터
함수 포인터 임의의 정수 계열 형식, 개체에 대한 포인터 또는 함수 포인터
구조체, 공용 구조체 또는 배열 없음
void 형식 모든 형식

모든 식별자를 void 형식으로 캐스팅할 수 있습니다. 그러나 형식 캐스트 식에 지정된 형식이 void가 아닌 경우 해당 형식으로 캐스팅되는 식별자가 void 식이 될 수 없습니다. 모든 식을 void로 캐스팅할 수 있지만 void 형식의 식은 다른 형식으로 캐스팅할 수 없습니다. 예를 들어, void 반환 형식이 포함된 함수의 반환 형식을 다른 형식으로 캐스팅할 수 없습니다.

void * 식에는 void 형식이 아니라 void에 대한 형식 포인터가 있습니다. 개체가 void 형식으로 캐스팅되면 결과 식을 어떠한 항목에도 할당할 수 없습니다. 마찬가지로, 형식 캐스팅 개체가 허용 가능한 l-value가 아니므로 형식 캐스팅 개체에 어떠한 항목도 할당할 수 없습니다.

Microsoft 전용

형식 캐스팅은 식별자의 크기가 변경되지 않는 한 l-value 식이 될 수 있습니다. l-value 식에 대한 자세한 내용은 L-Value 및 R-Value 식을 참조하세요.

Microsoft 전용 종료

캐스팅을 사용하여 식을 void 형식으로 변환할 수 있지만 결과 식은 값이 필요하지 않은 위치에서만 사용할 수 있습니다. void *로 변환되었다가 다시 원래 형식으로 변환된 개체 포인터는 해당 원래 값으로 되돌려집니다.

참조

형식 변환