Александр Микушин - Занимательно о микроконтроллерах стр 59.

Шрифт
Фон

Александр Микушин - Занимательно о микроконтроллерах

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

Константы

Константы предназначены для введения чисел и символов в состав выражений. В языке программирования С-51 разделяют четыре типа констант:

- целые знаковые и беззнаковые константы;

- константы с плавающей запятой;

- символьные константы;

- литеральные строки.

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

Десятичная константа состоит из одной или нескольких десятичных цифр, причем первая цифра не может быть нулем (иначе число будет воспринято как восьмеричное).

Восьмеричная константа состоит из обязательного нуля и одной или нескольких восьмеричных цифр (среди цифр должны отсутствовать цифры восемь и девять, т. к. они не входят в восьмеричную систему счисления).

Если константа содержит цифру, недопустимую в восьмеричной системе счисления, то константа считается ошибочной.

Шестнадцатеричная константа начинается с обязательной последовательности символов 0х или 0Х и содержит одну или несколько шестнадцатеричных цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, В, С, D, E, F.

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

Занимательно о микроконтроллерах

Если требуется сформировать отрицательную целую константу, то используют знак "-" перед записью константы (который будет называться унарным минусом). Например: -0х2а, - 088, -16.

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

- десятичные константы рассматриваются как числа со знаком, и им присваивается тип 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". Именно этот символ и является признаком конца строки.

Литеральная строка рассматривается как массив символов (char []). Отметим важную особенность: число элементов массива равно числу символов в строке плюс 1, т. к. нулевой символ (символ конца строки) также является элементом массива. Все литеральные строки рассматриваются компилятором как различные объекты. Одна литеральная строка может выводиться на дисплей как несколько строк. Такие строки разделяются при помощи обратной дробной черты и символа новой строки \n. На одной строке исходного текста программы можно записать только одну литеральную строку. Если необходимо продолжить написание одной и той же литеральной строки на следующей строке исходного текста, то в конце строки исходного текста можно поставить обратную строку. Например, исходный текст:

"строка неопределенной \

длины"

полностью идентичен литеральной строке:

"строка неопределенной длины".

Однако более удобно для объединения литеральных строк использовать символ (символы) пробела. Если в программе встречаются два или более литерала, разделенные только пробелами или символами табуляции, то они будут рассматриваться как одна литеральная строка. Этот принцип можно использовать для формирования литералов, занимающих более одной строки.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке