среда, 27 апреля 2011 г.

Типы данных, переменные и константы

Перевод из справочной системы Delphi
О типах данных

Тип по существу является именем вида данных. Когда вы объявляете переменную, вы должны указать ее тип, который определяет набор значений, которые может принимать переменная и операции, которые могут быть выполнены над ней. Каждое выражение (как и функция) возвращает данные определенного типа . Большинство функций и процедур требуют параметров определенных типов.


Язык Delphi – это "строго типизированный" язык, что означает, что он различает типы данных и не всегда позволяет вам заменять один тип другим. Обычно это выгодно, поскольку позволяет компилятору разумно обрабатывать данные и более строго проверять ваш код, избегая появления сложных для диагностирования ошибок при выполнении программы. Однако, если вам нужна большая гибкость, существуют механизмы для обхода строгой типизации. Это преобразование типов, указатели, варианты, вариантные части в записях и абсолютные адреса переменных.

Есть несколько способов классификации типов данных в Delphi:

  • Некоторые типы предопределены (или встроены), компилятор распознает их автоматически (нет необходимости объявлять их). Практически все типы, упомянутые в данном руководстве являются предопределенными. Остальные типы создаются путем объявления. Это касается типов данных, определенных пользователем и типов, определенных в библиотеках, поставляемых вместе с продуктом.
  • Типы могут классифицироваться как фундаментальные или обобщенные. Диапазон значений и формат фундаментальных типов совпадают во всех реализациях языка Delphi, безотносительно ЦПУ и операционной системы. Диапазон значений и формат обобщенных типов данных зависит от платформы и может отличаться в зависимости от реализации языка. Большая часть предопределенных типов являются фундаментальными, но несколько целочисленных, символьных, строковых и указательных типов являются обобщенными. Предпочтительным является использование обобщенных типов данных, когда это возможно, поскольку они обеспечивают оптимальную производительности и переносимость. Тем не менее, изменения в формате хранения в различных реализациях языка могут привести к проблемам совместимости – например, если вы сохраняете в файл некоторый контент в двоичном виде без информации о типе и версии.
  • Типы могут классифицироваться как простые, строковые, структурированные, указательные, процедурные или вариантные. Вдобавок сами по себе идентификаторы типов могут рассматриваться как значения, принадлежащие к некоторому "типу", поскольку они могут передаваться как параметры в определенные функции (такие как High, Low и SizeOf).
  • Также типы могут быть параметризованными типами или дженериками. Типы могут быть дженериками, в случае, если они находятся в базисе какой-либо структуры или процедуры, которая оперирует различными типами, определяемыми позже.

Далее на схеме показана система типов данных Delphi:

simple
  ordinal
   integer
   character
   Boolean
   enumerated
   subrange
  real
 string
 structured
  set
  array
  record
  file
  class
  class reference
  interface
 pointer
 procedural
 Variant
 type identifier

Стандартные функция SizeOf оперирует любыми переменными и идентификаторами типов данных. Она возвращает целое число представляющее объем памяти (в байтах), требуемых для хранения данных определенного типа. Например:

SizeOf(Longint) //возвращает 4, 
//переменная типа Longint требует 4 байта памяти 
См. также
Простые типы данных
Строковые типы данных
Структурированные типы

Комментариев нет:

Отправить комментарий