Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
A.doc
Скачиваний:
36
Добавлен:
09.04.2015
Размер:
5.6 Mб
Скачать

54 Глава 2

Например:

Этот оператор определяет переменную pi с начальным значением 3,14159. Символ f в конце константы указывает, что она имеет тип float. Без f константа имела бы тип double. Переменные, объявленные с типом float, имеют точность примерно в 7 десятичных знаков и допускают значения от 3,4х10-38 до 3,4х1038, положительные и отрицательные.

Стандарт С++ ISO/ANSI также определяет тип с плавающей точкой long double, который в Visual С++ 2005 реализован с тем же диапазоном и точностью, что и

double.

Фундаментальные типы ISO/ANSI C++

В табл. 2.1 представлен список всех фундаментальных типов ISO/ANSI С++, а так- же диапазоны их допустимых значений в Visual С++ 2005.

Литералы

Я уже использовал в этой книге множество явных значений для инициализации переменных. В С++ фиксированные значения любого рода называются литералами. Литерал — это значение определенного типа, поэтому 23, 3.14159, 9. 5f и true — примеры литералов типа int, типа double, типа float и типа bool, соответственно. Литерал "Samuel Beckett" — это пример строкового литерала, но обсуждение этого типа мы отложим до главы 4. В табл. 2.2 представлены примеры записи литералов различных типов.

Данные, переменные и вычисления 55

Вы можете специфицировать литерал как относящийся к типу short или unsigned short, но компилятор примет начальные значения, являющиеся литера- лами типа int для переменных этого типа, если значение литерала находится в до- пустимом диапазоне для типа переменной.

Часто вам нужно будет использовать литералы в процессе вычислений внутри про- граммы, например, преобразуя значения вроде 12 футов в дюймы, или 25,4 дюймов в миллиметры, или же для спецификации строк сообщений об ошибках. Однако вы должны избегать явного применения литералов в программах, когда их смысл не оче- виден. Вовсе не всем и не всегда ясно, что когда вы указываете значение 2,54, то это означает число сантиметров в дюйме. Лучше объявить переменную с фиксированным значением, равным литералу. Например, вы можете назвать ее inchesToCentimeters. Тогда всякий раз, когда в коде встретится переменная inchesToCentimeters, ее смысл будет достаточно очевиден. Чуть позже в этой главе вы увидите, как можно за- фиксировать значение переменной.

Определение синонимов для типов данных

Ключевое слово typedef позволяет определить ваше собственное имя для существу- ющего типа данных. Используя typedef, вы можете определить имя типа BigOnes как эквивалент стандартного типа long int, применив следующее объявление:

Это определяет BigOnes как альтернативное имя для long int, поэтому вы сможе- те объявить переменную mynum типа long int таким объявлением:

При этом не будет никакой разницы между таким объявлением и тем, что исполь- зует встроенное имя типа. То есть следующий оператор эквивалентен предыдущему:

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