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

— десятичные константы рассматриваются как числа со знаком, и им присваивается тип int (целая) или long (длинное целая) в соответствии со значением константы. Если константа меньше 32768, то ей присваивается тип int в противном случае — long.

— восьмеричным и шестнадцатеричным константам присваивается тип int, unsigned int (беззнаковое целое), long или unsigned long в зависимости от значения константы согласно табл. 9.5.

Иногда требуется с самого начала интерпретировать константу как длинное целое число. Для того чтобы любую целую константу определить типом long, достаточно в конце константы поставить букву l или L. Пример записи целой константы типа long:

51, 61, 128L, 0105L, 0x2A11L.

Примеры синтаксически недопустимых целочисленных констант:

12AF — шестнадцатеричная константа не имеет символов 0х в начале константы, поэтому по умолчанию для нее принимается десятичная система счисления, но тогда в ней присутствуют недопустимые символы. В результате эта последовательность символов будет восприниматься как идентификатор.

0x2ADG — символ G недопустим при записи шестнадцатеричных чисел.

Кроме целых констант в языке программирования С-51 используются числовые константы с плавающей запятой.

Константа с плавающей запятой — это десятичное число, представленное в виде действительной величины с десятичной точкой и (или) той. Формат записи константы имеет вид:

[Цифры].[Цифры] ['Е'|'е' ['+'|'-'] Цифры]

Число с плавающей запятой состоит из целой и дробной частей и (или) экспоненты. Для определения отрицательного числа необходимо сформировать константное выражение, состоящее из знака минус и положительной константы. В языке программирования С-51, в отличие от стандартного языка С, константы с плавающей запятой представляются с одинарной точностью (имеют тип float). Для определения отрицательного числа необходимо записать константное выражение, состоящее из знака минуса и положительной константы. Например:

115.75, 1.5Е-2, -0.025, 075, -0.85Е2

Символьная константа — представляется символом, заключенным в апострофы. Управляющая последовательность рассматривается как одиночный символ, поэтому ее допустимо использовать в символьных константах. Значением символьной константы является числовой код символа.

Примеры записи символьных констант:

' ' — пробел;

'Q' —буква Q;

'\n' — символ новой строки;

'\\' — обратная дробная черта;

'\v' — вертикальная табуляция.

Символьные константы в языке программирования С-51 имеют тип char, поэтому при использовании функций преобразования типов дополняются знаком. Символьные константы используются, например, при анализе управляющего кода, введенного с клавиатуры микропроцессорной системы. Пример использования символьной константы на языке программирования С-51 приведен ниже:

if (NajKn=='p') VklUstr();

В этом примере если в переменной NajKn содержится код, соответствующий букве 'p', то будет выполнена функция VkiUstr.

Строковая константа (литерал или литеральная строка) — это последовательность символов, включая строковые и прописные буквы русского и латинского алфавита, а также цифры, знаки пунктуации и разделители, заключенные в кавычки ("). Например: «школа n 35", «город Тамбов", «YZPT КОД".

Отметим, что все управляющие символы, кавычка ("), обратная дробная черта (\) и символ новой строки в литеральной строке и в символьной константе представляются соответствующими управляющими последовательностями. Каждая управляющая последовательность представляется как один символ. Например, при печати литеральной константы «школа \n N 35» ее часть «школа» будет напечатана на одной строке, а вторая часть «n 35» на следующей строке.

Символы литеральной строки хранятся в памяти программ, но могут храниться и в памяти данных. В конец каждой литеральной строки компилятором добавляется нулевой символ, который можно записать как: «\0". Именно этот символ и является признаком конца строки.

Перейти на страницу:

Поиск

Похожие книги