변수 타입캐스트
변수 타입캐스트 (Variable typecasts)
변수는 식에서 하나의 인자(factor)로 볼 수 있어요. 그래서 변수도 타입캐스트할 수 있어요. 변수는, 타입이 원래 변수와 같은 크기를 가진다면 어떤 타입으로든 타입캐스트할 수 있어요.
본문
정수 타입을 실수 타입으로(또는 그 반대로) 타입캐스트하는 것은 좋지 않은 생각이에요. 타입 대입 호환성을 활용하고 표준 타입 변환 함수 몇 가지를 쓰는 편이 더 나아요.
변수 타입캐스트는 대입의 양쪽 어디에든 나타날 수 있다는 점을 기억하세요. 즉 다음 두 가지 모두 유효한 타입캐스트예요.
Var
C : Char;
B : Byte;
begin
B:=Byte(C);
Char(B):=C;
end;
포인터 변수는 프로시저 타입으로 타입캐스트할 수 있지만, 메서드 포인터(method pointer)로는 할 수 없어요.
타입캐스트는 주어진 타입의 식이므로, 그 뒤에 한정자(qualifier)가 따라올 수 있어요.
Type
TWordRec = Packed Record
L,H : Byte;
end;
Var
P : Pointer;
W : Word;
S : String;
begin
TWordRec(W).L:=$FF;
TWordRec(W).H:=0;
S:=TObject(P).ClassName;
더 알아보기
- 대입의 왼쪽에 쓸 수 없는 값 타입캐스트와 대비해서 보면 좋아요.
- 메모리 정렬을 다루는 비정렬 타입캐스트도 함께 확인할 수 있어요.