typedef - КРАТКИЙ ОБЗОР

typedef - КРАТКИЙ ОБЗОР

     Функция typedef позволяет нам создать свое собственное имя типа. Это напоминает директиву #define, но со следующими тремя изменениями:

1. В отличие от #define функция typedef дает символические имена, но ограничивается только типами данных.

2. Функция typedef выполняется компилятором, а не препроцессором.

3. В своих пределах функция typedef более гибка, чем #define.

     Посмотрим, как она работает. Предположим, вы хотите использовать термин real для чисел типа float. Тогда вы определяете термин real, как если бы он был переменной типа float, и перед его определением ставите ключевое слово typedef:

typedef float real;

С этого момента вы можете использовать real для определения переменных:

real х, у[25], *рr;

Область действия такого определения зависит от расположения оператора typedef. Если определение находится внутри функции, то область действия локальна и ограничена этой функцией. Если определение расположено вне функции, то область действия глобальна.

Часто в этих определениях используются прописные буквы, чтобы напомнить пользователю, что имя типа является на самом деле символической аббревиатурой:

typedef float REAL;

В последнем примере можно было бы применить директиву #define. А здесь это делать нельзя:

typedef char *STRING;

Без ключевого слова typedef оператор определял бы STRING как указатель на тип char. С ключевым словом оператор делает STRING идентификатором указателей на тип char. Так,

STRING name, sign;

означает

char *name, *sign;

Мы можем использовать typedef и для структур. Вот пример:

typedef struct COMPLEX {

float real;

float imag; };

Кроме того, можно использовать тип COMPLEX для представления комплексных чисел.

     Одна из причин использования typedef заключается в создании удобных, распознаваемых имен для часто встречающихся типов. Например, многие пользователи предпочитают применять STRING или его эквивалент, как это мы делали выше. Вторая причина: имена typedef часто используются для сложных типов. Например, описание

typedef char *FRPTC ( ) [5];

приводит к тому, что FRPTC объявляет тип, являющийся функцией, которая возвращает указатель на пятиэлементный массив типа char. (См. "Причудливые описания".)

Третья причина использования typedef заключается в том, чтобы сделать программы более мобильными. Предположим, например, что вашей программе нужно использовать 16-разрядные числа. В некоторых системах это был бы тип short, в других же он может быть типом int. Если вы использовали в ваших описаниях short или int, то должны изменить все описания, когда перейдете от одной системы к другой. Вместо этого сделайте следующее, В файле директивы #include есть такое определение:

typedef short TWOBYTE;

Используйте TWOBYTE в ваших программах для переменных типа short, которые должны быть 16-разрядными. Тогда если вы перемешаете программу туда, где необходимо использовать тип int, то следует только изменить одно определение в вашем файле директивы #include:

typedef int TWOBYTE;

Это пример того, что делает язык Си столь мобильным. При использовании typedеf следует иметь в виду, что он не создаст новых типов, он только создает удобные метки. 

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

5.1 Знакомство и Краткий Обзор

Из книги C++ автора Хилл Мюррей

5.1 Знакомство и Краткий Обзор Предназначение понятия класса, которому посвящены эта и две последующие главы, состоит в том, чтобы предоставить программисту инструмент для создания новых типов, столь же удобных в обращении сколь и встроенные типы. В идеале тип оределяемый


Краткий обзор

Из книги Каждому проекту своя методология автора Коуберн Алистэр

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


Глава 10. Краткий обзор

Из книги Экстремальное программирование автора Бек Кент

Глава 10. Краткий обзор Мы будем опираться на симбиоз взаимодействующих между собой методик. Методик, некоторые из которых были забыты десятилетия назад как непрактичные и наивные.Вот исходные материалы, из которых нам предстоит построить новую дисциплину разработки


Краткий обзор технологий

Из книги Разгони свой сайт автора Мациевский Николай

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


Краткий обзор делегатов .NET

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Краткий обзор делегатов .NET Напомним, что тип делегата .NET – это обеспечивающий типовую безопасность объектно-ориентированный указатель функции. Когда вы объявляете делегат .NET, компилятор C# отвечает на это созданием изолированного класса, полученного из System.MulticastDelegate


Краткий обзор представленных материалов

Из книги Применение Windows API автора Легалов А И

Краткий обзор представленных материалов Разработка программ зачастую напоминает священный ритуал, построенный на произнесении ряда обязательных магических заклинаний. Особенно это касается Windows приложений. Windows-заклинания позволяют вывести графическое окно,


2.1. Краткий обзор архитектуры хранения данных в MySQL

Из книги MySQL: руководство профессионала автора Паутов Алексей В

2.1. Краткий обзор архитектуры хранения данных в MySQL Архитектура хранения данных в MySQL позволяет профессионалу базы данных выбирать специализированный тип памяти для специфической потребности прикладной программы. Сервер MySQL изолирует прикладного программиста и DBA от


3.3 Краткий обзор интерфейса

Из книги Фундаментальные алгоритмы и структуры данных в Delphi автора Бакнелл Джулиан М.

3.3 Краткий обзор интерфейса Если вы работали с другими операционными системами, полагаю, вы легко разберётесь в интерфейсе Ubuntu. Подробное знакомство с ним мы проведём после установки, а пока обратите внимание на главное меню системы в левом верхнем углу: Рис. 3.6: Главное


Краткий обзор класса TList

Из книги Windows Vista. Для профессионалов автора Клименко Роман Александрович

Краткий обзор класса TList Класс TList хранит указатели в формате массива. Указатели могут быть любыми. Они могут указывать на записи, строки или объекты. Класс имеет специальные методы для вставки и удаления элементов, поиска элемента в списке, перестановки элементов и, в


3.1. Краткий обзор интерфейса

Из книги Язык Си - руководство для начинающих автора Прата Стивен

3.1. Краткий обзор интерфейса Опытный пользователь, не первый год работающий с операционной системой Windows ХР, при переходе на новую операционную систему Windows Vista может немного растеряться. Действительно, несмотря на то что ничего революционного и кардинально нового в


Первый просмотр: краткий обзор

Из книги Как сделать свой сайт и заработать на нем. Практическое пособие для начинающих по заработку в Интернете автора Мухутдинов Евгений

Первый просмотр: краткий обзор #include — включение другого файла.Эта строка указывает компилятору, что нужно включить информацию, содержащуюся в файле stdio.h.main() — имя функции РИС. 2.1. Структура программы, написанной на языке Си.Любая программа, написанная на языке Си,


2. Краткий обзор С++

Из книги автора

2. Краткий обзор С++ Эту главу мы начнем с рассмотрения встроенного в язык С++ типа данных “массив”. Массив – это набор данных одного типа, например массив целых чисел или массив строк. Мы рассмотрим недостатки, присущие встроенному массиву, и напишем для его


12.1. Краткий обзор

Из книги автора

12.1. Краткий обзор Реализация обобщенного алгоритма не зависит от типа контейнера, поэтому одна основанная на шаблонах реализация может работать со всеми контейнерами, а равно и со встроенным типом массива. Рассмотрим алгоритм find(). Если коллекция не отсортирована, то,