사용자 언어 프로그램은 다른 유형의 변수를 정의하여 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 변수의 요소는 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로 타입캐스팅할 때 값의 분수 부분이 잘립니다.