1)
TR_STRUCT = Packed Record
DataLen : Array [1.. 3] of char;
TPCode : Array [1.. 5] of char;
end;
ss : ^TR_STRUCT
위의 ss에는 어떤 것이 할당될수 ㅇ있는건가요 ^TR_STRUCT
의 의미가무언가요?
2)
Move(PChar(DATA)^,PChar(@D1001)^,Length(DATA));
이것은 PChar(DATA)^ 와 PChar(@D1001)^ 가 ㅇ어떻게 할당이 ㄷ되는건가요? 의미를 잘 모르겠습니다.
꼭 공부하셨으면 합니다.
질문내용을 건축을 예로 들면서 설명할께요
건축을 할때 건축도면 또는 설계서 있죠
이게 바로 Struncture 입니다.
TR_STRUCT = Packed Record
DataLen : Array [1.. 3] of char;
TPCode : Array [1.. 5] of char;
end;
그럼 건축물은 무엇일까요
A : TR_STRUCT;
여기서 A가 바로 건축물입니다.
그리고 님이 가지고 있는 수첩있죠
그곳의 주소란이 바로 Pointer 입니다.
ss : ^TR_STRUCT;
건축물에는 주소가 있죠 이것이 Adress이고
표현은 @A 로 표현합니다.
그럼 당신의 주소란에 주소를 적어넣을까요
ss := @A;
건축물의 내용을 싶어요 어떻게 하면 될까요
DataLen이라는 내용을 볼까요 ^^
A.DataLen <= A건축물의 DataLen의 내용
ss^.DataLen <= ss에 할당되어있는 주소의 건축물의 DataLen의 내용
자 이제 이해가 되셨는지 모르겠네요
^^ 아무리 보아도 설명 무지 잘했다 (자화자찬 ㅋㅋ)
Move(PChar(DATA)^,PChar(@D1001)^,Length(DATA));
PChar(DATA)^
에서 이 내용이 무엇일까요
DATA <= 추측컨데 이것은 스트링 변수인듯 합니다
델파이에서 스트링변수는 무엇일까요
일반적인 s : string; 은 포인터 변수입니다.
s := '나는 천재인다';
이러면 자동으로 메모리 할당하여 데이타를 집어넣고 그 주소를
s에 넣습니다.
PChar(DATA) => DATA라는 스트링변수(포인터)를 Char Pointer
로 형변환 하라는 의미입니다.
또한 PChar(DATA)^ 은 Char Pointer 로 형변환 지칭하는 주소의
데이타(또는 공간)라는 의미 입니다.
PChar(@D1001)^
D1001 은 아마 특정 Structure로 된 건축물로 예상됩니다.
@D1001 은 그 건축물(변수 또는 Object 표현자유^^)의 주소이고
PChar(@D1001) 은 그주소를 Char Pointer로 바꾸고
PChar(@D1001) 은 Char Pointer 로 형변환 지칭하는 주소의
데이타(또는 공간)라는 의미 입니다.
설명이 잘되었는지 모르겠네요 그럼 즐코 하시고 ㅂㄴ