Типи даних

Типи даних

Програма на мові користувача може визначати змінні різних типів, що представляють різні типи інформації, доступної в структурах даних EAGLE. Є чотири основні типи даних

  • char, для окремих символів
  • int, для цілих значень
  • дійсний, для значень з плаваючою комою
  • рядок, для текстової інформації

Окрім цих основних типів даних, існують також типи об’єктів високого рівня, які представляють структури даних, що зберігаються у файлах даних EAGLE.

Спеціальний тип даних void використовується лише як тип повернення функції, вказуючи, що ця функція не повертає жодного значення.

char

Тип даних char використовується для зберігання окремих символів, наприклад літер алфавіту, або невеликих чисел без знаку. Змінна типу char має розмір 8 біт (один байт) і може зберігати будь-яке значення в діапазоні 0..255.

внутр

Тип даних int використовується для зберігання інтегральних значень зі знаком, таких як координати об’єкта. Змінна типу int має розмір 32 біти (чотири байти) і може зберігати будь-яке значення в діапазоні від -2147483648 до 2147483647.

справжній

Тип даних real використовується для зберігання значень із плаваючою комою зі знаком, як-от відстань сітки. Змінна типу real має розмір 64 біти (вісім байтів) і може зберігати будь-яке значення в діапазоні від ?2.2e-308 до ?1.7e+308 з точністю до 15 цифр.

рядок

Рядок типу даних використовується для зберігання текстової інформації, наприклад назви частини або мережі. Змінна типу string не обмежена розміром (за умови достатньої кількості доступної пам’яті).

Змінні типу string визначаються без явного розміру. Вони автоматично збільшуються в міру необхідності під час виконання програми.

Елементи рядкової змінної мають тип int, і до них можна отримати індивідуальний доступ за допомогою [index]. Перший символ рядка має індекс 0:

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

Це виведе символ "y". Зауважте, що s[2] повертає третій символ s! Перетворення без втрат у char можливе для стандартних рядків ASCII:

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

Деталі реалізації

Рядок типу даних фактично реалізований як рідні рядки C-типу з нульовим закінченням. Дивлячись на наступне визначення змінної

string s = "abcde";

s[4] — символ 'e', а s[5] — символ '' або ціле число 0x00. Цей факт можна використати для визначення кінця рядка без використання функції strlen(), як у

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

Також цілком нормально «відрізати» частину рядка, «вставивши» в неї нульовий символ:

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

Це призведе до того, що s матиме значення "abc". Зауважте, що все, що йде після нульового символу, фактично зникне, і воно не повернеться після відновлення початкового символу. Те саме стосується будь-якої іншої операції, яка встановлює символ у 0, наприклад –s[3].

Перетворення типів

Тип результату арифметичного виразу, наприклад a + b, де a і b — різні арифметичні типи, дорівнює «більшому» з двох типів операндів. Арифметичні типи char, int і real (у такому порядку). Отже, якщо, наприклад, a має тип int, а b має тип real, результат виразу a + b буде дійсним.

Приведення типу

Тип результату арифметичного виразу можна явно перетворити на інший арифметичний тип, застосувавши до нього приведення типу. Загальний синтаксис приведення типу — type(expression) де тип — це char, int або real, а вираз — будь-який арифметичний вираз.

Під час приведення дійсного виразу до int дробова частина значення скорочується!

Орігінал сторінки: Data types