КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

Turbo C++ Version 1.0 Programmer’s Guide

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

LIB.com.ua [электронная библиотека]: : TURBO C++ Version 1.0 Programmer’s Guide

enum team (* giants, cubs=3, dodgers = giants + 1 *);

константы установлены следующим образом:

giants = 0, cubs = 3, dodgers = 1

Значения констант не обязаны быть уникальными:

enum team (* giants, cubs = 1, dodgers = cubs — 1 *);

Допустимы также отрицательные инициализаторы.

Строковые литералы

— 20 —
Строковые литералы, известные также как строковые конс-
танты, образуют специальную категорию констант, используемых
для работы с фиксированными последовательностями символов.
Строковый литерал имееттип данных array ofchar и класспамя-
тиstatic, и записываетсякак последовательность произвольного
количества символов, заключенных в двойные кавычки:

«Это строковый литерал!»

Нулевая (пустая) строка записывается как «».

Символы внутри двойных кавычек могут включатьуправляю-
щие последовательности (см. стр. 13 оригинала). Например,
данный код,

«\t\t\»Имя \»\\\tАдрес\n\n»

распечатается следующим образом:

«Имя «\ Адрес

Слову «Имя » будет предшествовать два символа табуля-
ции; слову Адрес предшествуетодин символтабуляции. Строка
заканчиваетсядвумя символами новой строки. Последователь-
ность \» обеспечивает вывод внутренних кавычек.

Строка литерала хранится в памяти как заданная последо-
вательность символов,плюс конечный пустой символ (‘\0’). Ну-
левая строка хранится в виде одного символа ‘\0’.

На фазе лексического анализа соседние строковые
литералы, разделенные толькопробелами, конкатенируются. В
следующем примере,

#include

main()
(*
char *p;

p = «Это пример того, как Turbo C++»
» автоматически\nвыполняет для вас конкатенацию»
» очень длинных строк,\nчто позволяет получить»
» более красивые программы.»;
printf(*p*);
*)

На выходе программы будет:

Это пример того, как Turbo C++ автоматически
выполняет для вас конкатенацию очень длинных строк,
что позволяет получить более красивые программы.

Для расширения строковой константы за границы строки в
качестве символа продолжения можно использовать обратную
наклонную черту (\):

put(«В действительности \
это однострочная строка символов»);
Константы и их внутреннее представление

ANSI C говорит о том, что размер и численный диапазон
базовых типовданных( и различных их модификаций) зависят от
конкретной реализации компилятора и в целом от архитектуры
компьютера, на котором он установлен. Базовыми компьютерами
дляTurbo C++ являются компьютеры семействаIBM PC (и совмес-
тимые с ними), поэтому выбор внутреннего представления раз-

— 21 —
личных типов данных в целом определяется архитектурой мик-
ропроцессоров 8088 и 80×86. В следующей таблице сведены
размеры и соответствующие диапазоны значений для типов дан-
ных, определяемых в Turbo C++. Дополнительную информацию об
этих типах данных см. на стр. 39 оригинала. Внутреннее
представление типов данных см. на рис.1.

Типы данных, размеры и диапазоны значений Таблица 1.9
————————————————————
Тип Размер Диапазон Примеры применения
————————————————————
unsigned char8 0 до 255 Малые числа и полный

набор символов PC

char8 -128 до 127 Самые малые числа и
ASCII-символы

enum 16 -32,768 до 32,767 Упорядоченные наборы
значений

unsigned int 16 0 до 65,535 Большие числа и циклы

short int 16 -32,768 до 32,767 Счетчики, малые числа,
управление циклами

int 16 -32,768 до 32,767 Счетчики, малые числа,
управление циклами

unsigned long 32 0 до 4,294,967,295 Астрономические
расстояния

long 32 -2,147,483,648 до 2,147,483,647
Большие числа, население

-38 38
float 32 3.4 x 10 до 3.4 x 10
Научные расчеты (точность
7 разрядов)

-308 308
double 64 1.7 x 10 до 1.7 x 10
Научные расчеты (точность
15 разрядов)

-4932 4932
long double 80 3.4 x 10 до 1.1 x 10
Финансовые расчеты
(точность 19 знаков)

near pointer 16 Не существует Манипулирование адресами
памяти

far pointer 32 Не существует Манипулирование адресами
памяти вне текущего
сегмента
————————————————————

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *