프로그래밍 노트

델파이의 데이터 형 본문

델파이

델파이의 데이터 형

띠리 2007. 7. 10. 21:01
델파이의 데이터형

■ 정수형
정수형의 종류

범위 형식
Byte 0~255 부호없는1바이트
Shortint -128~127 부호있는1바이트
Word 0~65535 부호없는2바이트
Smallint -32768~32767 부호있는2바이트
Integer -2147483648~2147483647 부호있는4바이트
Longint -2147483648~2147483647 부호있는4바이트
Cardinal 0~2147483647 부호없는4바이트

16진수를 표시할때는 숫자앞에 $를 붙인다.
nHex := $FF;

변수의 선언예
nInt:Integer;

■ 실수형
실수형의 종류

유효자릿수 바이트수
Single 7-8    4
Double 15-16    8
Extended 19-20 10
Comp 19-20 8
Currency 19-20 8

Comp(계산)형은 -9,223,372,036,854,775,808~9,223,372,036,854,775,807(-2~2- 1)사이의 정수값
Currency형은 돈 계산에 적절한 고정 소숫점 데이터 형

Double이 가장 많이 쓰여진다.

변수의 선언예
dVal:Double;

■ 문자열형
문자와 문자열의 데이터형

길이 비고
Char 1바이트 일반 문자
WideChar 2바이트 UNICODE문자(OLE로 사용되어짐)
String 메모리 크기의 제한 일반 Pascal무낮열
PChar 포인트와 같음 실체는 문자배열

String은 일반적으로 꽤 긴문자도 취급할수 있지만 컴파일러에서 $H-를 지정하면 최대 255문자까지로 제한된다.
PChar는 C언어 호환 문자열로 O(NULL)로 문자열이 끝난다. PChar 자신은 C언어와 같이 포인터이기 때문에 문자열 실체를 어딘가에 따로 가지고 있어야된다.

사용예
var Msg: array[0..127] of Char; // C문자열 실체
pMsg:PChar;
...
    pMsg := Msg;

String형은 길이를 선언으로 지정할 수 있다.

사용예
str:String[10];

■ 논리형
노리형은 True와 False의 값을 가진다.

사용예
bFlag:Boolean;

■ 포인터형
포인터형에는 형이 붙을때와 형이 붙지않을때가 있다.
형이 붙을때는 그 형의 앞에 ^를 붙여서 선언한다.
포인터의 간곳의 값은 포인터 변수의 뒤에 ^을 붙여서 참조한다.

사용예
var
    p: ^Integer;
...
    i := p^;

형이 없는 포인터는 C언어의 void*에 해당한다.

사용예

car p:Pointer;

어떤 포인터가 어디도 가르치고 있지않을때의 값은 nil(C에서 NULL에 해당)이다.

■ 배열
배열은 다음과 같이 선언한다.
[]의 안에 배열의 최소값과 최대값을 ..으로 구분해서 기술한다.

사용예
A:array[0..255] of Byte;

■ 레코드형
레코드형은 C언어에서 구조체에 해당한다.
레코드형은 유저 정의형임으로 var뒤에 오지않고 type뒤에 선언한다.

사용예

type
    TheRecord = record
        name: String;
        code: Smallint
    end;

var data: TheRecord;

■ 집합형

집합형은 집합을 정의할 때 사용한다.
C에서의 enum과 비슷하다.

사용예

type
    TMySet = set of Char;

var
    Fset: TMySet;

■ 클래스
클래스는 C++의 클래스에 해당한다.
즉 레코드형에 메서드 선언을 가능하게하여 멤버 보호를 정의할 수 있게한 것.
단 C++의 클래스에 없는 특징이 있다. 그것은 C++에서는 이 보호 규정이 private, protected, public이지만 델파이엥서는 published라는 것도 있다.
이것은 설계할때 오브젝트 브라우저로 편집할찌 안할찌를 지정한다.
published속성을 갖는 멤버는 public이기도 하다.

사용예

type
    TMyClass = class

    public
        procedure Method1();
        function Func1(nX:Integer): Integer;
    private
        nData: Integer;
    end;

클래스는 오브젝트 지향 프로그래밍의 기초가 된다.
클래스를 제대로 이해하지 못하면 델파이 프로그램을 만들수 없다.

■ 상수
상수는 값이 변하지않는 기본형의 값이다.
C언어에서의 #define에 해당한다.
상수는 const로 선언한다.

사용예

const
    PI = 3.141592;
    Folder: String = 'd:\Work\temp.txt';

■ 라벨
라벨은 goto문에 이동할 곳을 나타내는 번호이다.
다른 언어에서는 라벨은 선언하지 않고 쓰지만 파스칼에서는 선언이 필요하다.
(일반적으로 goto문은 잘 사용하지않는다.)

사용예
label
    TestGoto;
Comments