정보문화사에서 출간된 철저공략 델파이 7 Check의 편자이신 이정욱님이 이곳에 계시다기에 책 내용중 궁금한거좀 여쭤봅니다.
다름이 아니라요,
P110에 보면 유니온 구조를 구현한 예제 코드가 있더군요.
type
TVariantRecord = record
NullStrField : PChar;
IntField : Integer;
case Integer of
0 : (D : Double);
1 : (I : Integer);
2 : (c : Char);
end;
그런데 위의 코드에 대한 정확한 이해가 안돼서요.
만일 위의 코드로 된 경우에 유니온에 해당하는 필드를 어떤 형식으로 참조해야 하나요.
var
union : TVariantRecord;
begin
union.IntField.D := 45.3;
union.IntField.I := 3;
...
머 이런 식으로 참조하면 되나요??
이부분에 대한 리플 부탁드립니다.
union.D := 1.0;
union.I := 1;
union.C := 'A';
위와 같은 식으로 접근하시면 됩니다. IntField에 종속적인 필드가 아님니다.
단지 위 세개 필드(D, I, C)가 메모리를 공유한다는 차이점밖에 없습니다.
그러니까 위 세개중 어떤것이든지 하나를 변경하면 나머지에 영향이 미치죠...
union.C := 'A';
이렇게 하면 union.I의 하위바이트에는 65가 들어가겠죠... union.D도 마찬가지구요...
^^ 항상 즐코하세요...