Глава1. Написание программ для микроконтроллеров
Элементы языка Си
Регистры МК ( регистры - это ячейки-байты в памяти МК AVR ) в программе на Си имеют названия и так как числа в большинстве из них можно менять - для программы регистры являются по сути переменными.
Переменная - это набор ячеек в памяти в которых можно хранить число или числа и менять их. Переменная имеет адрес и имя.
Константа - это как переменная но менять содержимое нельзя.
Константы
Константами называются перечисленные величины в программе. В языке СИ разделяют четыре типа констант: целые константы, константы с плавающей запятой, символьные константы и строковыми литералы.
Целая константа: это десятичное, восьмеричное, шестнадцатеричное или двоичное число, которое представляет целую величину в одной из следующих форм: десятичной, восьмеричной, шестнадцатеричной или двоичной.
Десятичная константа состоит из одной или нескольких десятичных цифр, причем первая цифра не должна быть нулем (в противном случае число будет воспринято как восьмеричное).
Восьмеричная константа состоит из обязательного нуля и одной или нескольких восьмеричных цифр (среди цифр должны отсутствовать восьмерка и девятка, так как эти цифры не входят в восьмеричную систему счисления).
Шестнадцатеричная константа начинается с обязательной последовательности 0х или 0Х и содержит одну или несколько шестнадцатеричных цифр (цифры представляющие собой набор цифр шеснадцатеричной системы счисления: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F).
Двоичная константа записывается с помощью двоичных символов, которым должна предшествовать последовательность 0b.
например - Целые числа могут быть записаны :
- в десятичной форме: 12 234 -5493
- в двоичной форме с префиксом 0b так: 0b101001
- в шестнадцатеричной форме с префиксом 0x так: 0x5А
- в восьмеричной форме с префиксом 0 так: 0775
Если требуется сформировать отрицательную целую константу, то используют знак "-" перед записью константы (который будет называться унарным минусом). Например: -0x2A, -088, -16 .
Каждой целой константе присваивается тип, определяющий преобразования, которые должны быть выполнены, если константа используется в выражениях. Тип константы определяется следующим образом:
-десятичные константы рассматриваются как величины со знаком, и им присваивается тип int (целая) или long (длинная целая) в соответствии со значением константы. Если константа меньше 32768, то ей присваивается тип int, в противном случае long.
- восьмеричным и шестнадцатеричным константам присваивается тип int, unsigned int (беззнаковая целая), long или unsigned long в зависимости от значения константы согласно табл1.1.
Таблица 1.1
Диапазон шестнадцатеричных констант | Диапазон восьмеричных констант | Тип |
0x0 - 0x7FFF | 0 - 077777 | int |
0X8000 - 0XFFFF | 0100000 - 0177777 | unsigned int |
0X10000 - 0X7FFFFFFF | 0200000 - 017777777777 | long |
0X80000000 - 0XFFFFFFFF | 020000000000 - 037777777777 | unsigned long |
Число с плавающей точкой состоит из целой и дробной части и (или) экспоненты. Константы с плавающей точкой представляют положительные величины удвоенной точности (имеют тип double). Для определения отрицательной величины необходимо сформировать константное выражение, состоящее из знака минуса и положительной константы.
Примеры: 115.75, 1.5Е-2, -0.025, .075, -0.85Е2
Символьная константа - представляется символом заключенном в апострофы. Значением символьной константы является числовой код символа.
Например, 'Q'- буква Q .
Символьные константы имеют тип int и при преобразовании типов дополняются знаком.
Строковая константа (литерал) - последовательность символов (включая строковые и прописные буквы русского и латинского а также цифры) заключенные в кавычки (") .
Например, “Heloo”
Символы строкового литерала сохраняются в области оперативной памяти. В конец каждого строкового литерала компилятором добавляется нулевой символ, представляемый управляющей последовательностью \0. Строковый литерал имеет тип char[] .
1.1.2. Идентификатор
Идентификатором называется последовательность цифр и букв, а также специальных символов, при условии, что первой стоит буква или специальный символ. Для образования идентификаторов могут быть использованы строчные или прописные буквы латинского алфавита. В качестве специального символа может использоваться символ подчеркивание (_). Два идентификатора для образования которых используются совпадающие строчные и прописные буквы, считаются различными. Например: abc, ABC, A128B, a128b .
Идентификатор создается на этапе объявления переменной, функции, структуры и т.п. после этого его можно использовать в последующих операторах разрабатываемой программы. Идентификатор не должен совпадать с ключевыми словами, с зарезервированными словами и именами функций библиотеки компилятора языка СИ.
Ключевые слова
Ключевые слова - это зарезервированные идентификаторы, которые наделены определенным смыслом. Их можно использовать только в соответствии со значением известным компилятору языка СИ.
Приведем список ключевых слов
auto double int struct break else long switch register tupedef char extern return void case float unsigned default for signed union do if sizeof volatile continue enum short while |
Кроме того в рассматриваемой версии реализации языка СИ, зарезервированными словами являются : _asm, fortran, near, far, cdecl, huge, paskal, interrupt .
Ключевые слова far, huge, near позволяют определить размеры указателей на области памяти. Ключевые слова _asm, cdelc, fortran, pascal служат для организации связи с функциями написанными на других языках, а также для использования команд языка ассемблера непосредственно в теле разрабатываемой программы на языке СИ.
Ключевые слова не могут быть использованы в качестве идентификаторов.
Дата добавления: 2016-12-27; просмотров: 2092;