668 Глава 12

Тип	Размер в байтах	Диапазон значений
long	4	от -2 147 483 648 до 2 147 483 6 S
unsigned long	4 	от О до 4 294 967 295
int	4	как в long
unsigned int	4	как в unsigned long
float	4	от 3.4 • Ю-38 до 3.4 • 1038
double	8	от 1.7. Ю-завдо 1.7 . 10308
long double	10	от 3.4 • Ю-4932 до 1.1 • 104932
bool	1	true или false

Имеются также основные типы _int8, _intl6, _int32, _int64, о которых
подробнее см. в разделе 12.3.

Следует отметить, что в C++Builder, в отличие от некоторых других версий
C++, булев тип bool реализован как отдельный тип, а не как псевдоним целого. Од-
нако, это не мешает при желании использовать в логических выражениях целые
значения вместо булевых. При этом значение 0 расценивается как false, а любое
ненулевое значение — как true.

Производные типы включают в себя указатели и ссылки на какие-то типы,
массивы каких-то типов, типы функций, классы, структуры, объединения. Эти
типы считаются производными, поскольку, например, классы, структуры, объе-
динения могут включать в себя объекты различных типов.

Можно выделить еще одну категорию типов — порядковые, в которых значе-
ния упорядочены и для каждого из них можно указать предшествующее и после-
дующее. К ним относятся целые, символы, перечислимые типы.

Типы данных указываются при объявлении любых переменных и функций
(см. разделы 11.4.1 и 11.5.1). Например:

double а = 5.4, b = 2;

int с;

void Fl(double A) ;

Пользователь может вводить в программу свои собственные типы. Объявления
типов могут делаться в различных местах кода. Место объявления влияет на об-
ласть видимости или область действия так же, как и в случае объявления перемен-
ных (см. раздел 11.6).

Синтаксис объявления типа:

typedef определение типа идентификатор;

Здесь идентификатор — это вводимое пользователем имя нового типа, а опре-
деление_типа — описание этого типа. Например, оператор

typedef double Ar[10];

объявляет тип пользователя с именем Аг как массив из 10 действительных чисел.
В дальнейшем на этот тип можно ссылаться при объявлении переменных. Напри-
мер:

Аг А = {1,2,3,4,5,6,7,8,9,10};

Объявление типа с помощью typedef можно использовать и для создания ново-
го типа, имя которого будет являться псевдонимом стандартного типа C++. Имен-
но так в C++Builder многие встроенные типы компонентов Object Pascal приведе-