데이터 유형

사용자 언어 프로그램은 다른 유형의 변수를 정의하여 EAGLE 데이터 구조에서 사용할 수 있는 다양한 종류의 정보를 나타낼 수 있습니다. 네 가지 기본 데이터 유형은 다음과 같습니다.

이러한 기본 데이터 유형 외에도 EAGLE 데이터 파일에 저장된 데이터 구조를 나타내는 높은 수준의 객체 유형이 있습니다.

특수 데이터 유형 void는 함수의 반환 유형으로만 사용되며, 이 함수가 어떠한 값도 반환하지 않음을 나타냅니다.

데이터 유형 용도 크기
char 데이터 유형 char는 영문자와 같은 단일 문자 또는 부호가 없는 작은 숫자를 저장하는 데 사용됩니다. char 유형의 변수는 크기가 8비트(1바이트)이며, 0에서 255 범위의 모든 값을 저장할 수 있습니다.
int 데이터 유형 int는 객체의 좌표와 같이 부호가 있는 정수 값을 저장하는 데 사용됩니다. int 유형의 변수는 32비트(4바이트) 크기이며 -2147483648에서 2147483647 범위에 있는 모든 값을 저장할 수 있습니다.
real 데이터 유형 real은 그리드 거리와 같이 부호가 있는 부동 소수점 값을 저장하는 데 사용됩니다. real 유형의 변수는 크기가 64비트(8바이트)이며 대략 ±2.2e-308에서 ±1.7e+308 범위의 값을 15자리 정밀도로 저장할 수 있습니다.
string 데이터 유형 string은 부품 또는 네트의 이름과 같이 문자 정보를 저장하는 데 사용됩니다. (사용 가능한 메모리가 충분한 경우) string 유형의 변수는 크기가 제한되지 않습니다.

string 액세스 색인

string 유형의 변수는 명시적 크기 없이 정의됩니다. 이는 프로그램을 실행하는 동안 필요에 따라 자동으로 증가합니다.

string 변수의 요소는 int 유형이며 [색인]을 사용하여 개별적으로 액세스할 수 있습니다. string의 첫 번째 문자는 색인 0을 가집니다.

string s = "Layout";
printf("Third char is: %c\n", s[2]);

이 경우 문자 'y'가 출력됩니다. s[2]는 s의 세 번째 문자를 반환합니다. 표준 ASCII 문자열의 경우 char로 손실 없이 변환될 수 있습니다.

string s = "Layout";
char c = s[2];

구현 상세 정보

데이터 유형 string은 실제로 기본 C형 0 종료 문자열처럼 구현됩니다. 다음 변수 정의를 확인할 경우

string s = "abcde";

s[4]는 문자 'e'이고 s[5]는 문자 '\0' 또는 정수 값 0x00입니다. 이 사실은 다음과 같이 strlen() 함수를 사용하지 않고 문자열의 끝을 결정하는 데 사용될 수 있습니다.

for (int i = 0; s[i]; ++i) {
    // do something with s[i]
    }

또한 문자열에 0 문자를 "주입"하여 문자열의 일부를 "잘라내는" 것도 적절합니다.

string s = "abcde";
s[3] = 0;

이렇게 하면 "abc" 값이 생성됩니다. 0 문자 다음의 모든 항목이 실제로 사라지고 원래 문자를 복원해도 반환되지 않습니다. 이 작업은 문자를 0으로 설정하는 다른 모든 작업에도 적용됩니다(예 --s[3]).

유형 변환

a + b와 같이 a와 b가 서로 다른 산술 유형인 산술 표현식의 결과 유형은 두 피연산자 유형 중 "더 큰" 유형과 같습니다. 산술 유형은 char, int 및 real(해당 순서)입니다. 따라서 예를 들어 a가 int 유형이고 b가 real 유형인 경우 표현식 a + b의 결과는 real이 됩니다.

타입캐스트

산술 표현식의 결과 유형은 타입캐스트를 적용하여 명시적으로 다른 산술 유형으로 변환될 수 있습니다. 타입캐스팅의 일반 문법은 type(expression)입니다. 여기서 유형은 char, int 또는 real 중 하나이고 표현식은 임의 산술 표현식입니다.

real 표현식을 int로 타입캐스팅할 때 값의 분수 부분이 잘립니다.