얘기 듣기를 레코드형을 선언할때는 string형을 절대 사용하면 안된다는 말을
들은거 같아서 되도록이면 string형을 선언하지 않고 쓰는데요
type
Code = ^TCode;
TCode = packed record
Code : array[1..5] of char;
Data1 : char;
Data2 : char;
Data3 : array[1..40] of char;
Data4 : array[1..40] of char;
end;
만약 아래와 같이 string형으로 선언을 했을경우에 어떤 문제가 있나요
TList에서 char형으로 선언을 하니까 string형으로 선언을 했을때보다
많이 어렵네요.. ㅠㅠ
type
Code = ^TCode;
TCode = packed record
Code : string;
Data1 : string;
Data2 : string;
Data3 : string;
Data4 : string;
end;
어떤 목적으로 사용하느냐에 따라 일장일단이 있다고 생각합니다.
구조체에 String를 사용하면 String이라는 것이 가변 길이이기 때문에 구조체의 실제 데이터의 크기도 가변적이게 됩니다. 따라서 구조체 자체를 특정 스트림에 쓰거나 읽거나할 경우에는 일반적은 스트림의 Write나 Read 메소드 말고 별도로 스트림에서 구조체를 쓰거나 읽는 방법을 구현해 주어야 하겠죠.
하지만, 다른 면에서 보면 String인 경우 필요한 만큼만 메모리를 할당해서 사용하므로, 메모리는 아주 효율적으로 그리고, 무엇보다 array 타입보다는 다루기가 쉽겠죠.
그럼, 즐프~