<< Предыдущая Оглавление Следующая >>


3.8. Типы, определяемые пользователем

Язык С++ допускает создание собственных типов данных на основе базовых, таких как int, float, struct, union, enum и др. Для этого используется ключевое слово typedef, за которым следует описание типа и его имя.

Рассмотрим действие оператора typedef на примере создания пользовательского типа с именем BYTE для объявления байтовых переменных, т.е. переменных, значения которых меняются в диапазоне от 0 до 255, и которые занимают один байт в памяти ЭВМ:

typedef unsigned char BYTE;

Здесь unsigned char – пользовательский тип; BYTE – имя введенного типа. После такого объявления слово BYTE можно использовать для определения переменных в программе:

BYTE var_byte;

Создание имени для существующего типа может показаться нецелесообразным, но иногда это имеет смысл. Так, применение оператора typedef повышает степень переносимости программного кода с одной платформы на другую. Например, тип, возвращаемый оператором sizeof, определен как size_t. Это связано с тем, что в разных реализациях языка С++ size_t определен или как unsigned int или как unsigned long для лучшей адаптации к той или иной операционной системы. Таким образом, составленный текст программы достаточно откомпилировать на соответствующей платформе и оператор sizeof автоматически «подстроится» под нее без переделки самой программы.

Кроме объявлений простых пользовательских типов оператор typedef можно использовать и при объявлении новых типов на основе структур. Например, удобно ввести тип COMPLEX для объявления переменных комплексных чисел. Для этого можно воспользоваться следующим кодом:

typedef struct complex {
float real;
float imag;
} COMPLEX;

и работать с комплексными числами

COMPLEX var_cmp1, var_cmp2, var_cmp3;
var_cmp1.real = 10;
var_cmp1.imag = 5.5;
var_cmp2.real = 6.3;
var_cmp2.imag = 2.5;
var_cmp3.real = var_cmp1.real + var_cmp2.real;
var_cmp3.imag= var_cmp1.imag + var_cmp2.imag;

Ключевое слово typedef можно использовать с любыми стандартными типами данных и типами объявленными ранее.

Видео по теме

С++ с нуля: урок 1 - переменные, оператор присваивания

С++ с нуля: урок 2 - арифметические операции

С++ с нуля: урок 3 - директивы препроцессора

С++ с нуля, урок 4: условные операторы if и switch

С++ с нуля: урок 5 - операторы циклов while, for и do while

С++ с нуля: урок 6 - массивы, метод всплывающего пузырька

С++ с нуля: урок 7 - строки и функции работы с ними

С++ с нуля: урок 8 - функции: прототипы, перегрузка, рекурсия

С++ с нуля: урок 9 - области видимости переменных

С++ с нуля: урок 10 - битовые операции И, ИЛИ, НЕ, XOR

С++ с нуля: урок 11 - структуры

С++ с нуля: урок 12 - объединения, перечисления, typedef

С++ с нуля: урок 13 - указатели и ссылки, выделение памяти

С++ с нуля: урок 14 (часть 1) - функции работы с файлами

С++ с нуля: урок 14 (часть 2) - функции работы с файлами

С++ с нуля: урок 15 - стек, теория и практика

С++ с нуля: урок 16 - связные списки, теория и практика

С++ с нуля: урок 17 - бинарное дерево, теория и практика



<< Предыдущая Оглавление Следующая >>