Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроц техника / 4 курс_МТ_МСУД / описание микроСи .doc
Скачиваний:
34
Добавлен:
10.02.2015
Размер:
261.63 Кб
Скачать

MikroC Константы (числа)

Целые числа (константы) могут быть представлены в виде десятичных (с основанием 10), шестнадцатеричных (с основанием 16), в виде двоичного кода (с основанием 2), или восьмеричного (с основанием 8). При отсутствии любого суффикса расширения, тип данных числа зависит от его значения.

Десятичные константы могут принимать значения в диапазоне (‑2147483648    +4294967295). Числа, превышающие эти границы, сгенерируют ошибку типа "Вне диапазона". Десятичные числа не должны начинаться с нуля. Число, начинающееся с нуля, воспринимается как восьмеричное.

int i = 10; / * объявление переменной, равной десятичному числу 10 */

int i = 010; / * i =8 (в восьмеричном коде) */

int i = 0; /* десятичный 0 = восьмеричный 0 */

Типы констант приведены ниже в таблице

< -2147483648

Error: Out of range! (Ошибка: Вне диапазона!)

-2147483648 …32769

long

-32768…129

int

-128…127

short

128…255

unsigned short

256 … 32767

int

32768…65535

unsigned int

65536 …2147483647

long

2147483648 …4294967295

unsigned long

> 4294967295

Error: Out of range!

Шестнадцатеричные константы. Все числа, начинающие с 0х (0Х) считаются шестнадцатеричными.

Двоичные константы. Все числа, начинающие с 0b (или 0B), представлены в двоичном коде.

Восьмеричные константы. Все числа с начальным нулем считаются восьмеричными. Если такое число содержит цифры 8 или 9, выдается сообщение об ошибке.

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

Числа с плавающей запятой состоят из десятичного целого, знака десятичной дроби и дроби, e или E и степени, суффикса f или F или I или L (может не быть).

!0. //=0.0

-1.23 //=-1.23

23.45е6 //=23.45*106

2е-5 //=2.0*105

3Е+10 //=3.0*1010

.09Е34 //=0.09*1034

В mikroC диапазон чисел с плавающей запятой (±1.17549435082 * 10-38 .. ±6.80564774407 * 1038).

Символьные константы - один или более символов заключенных в одиночные кавычки, например, '+', или '\n'. В mikroC допускаются только символьные беззнаковые числа типа int.

Строковые константы заключаются в двойные кавычки, например, This is a text”.

Перечислимые константы зависят от объявленного типа. А идентификаторы (перечисления) являются элементами возможных значений (например, от sun до sat).

enum weekdays {sun=0, mon, tue, wed, thu, fri, sat};

При инициализации идентификаторов допускаются отрицательные значения.

Обратный слэш (\), используется для определения последовательности перехода. Одна из наиболее общих констант перехода - конец строки символа (\n). Обратный слэш также используется восьмеричными или шестнадцатеричными числами, для представления ASCII символов или контрольного кода, соответствующего этой величине. В таблице показаны доступные последовательности перехода.

Символ

Значение

Тип

функция

\a

0x07

BEL

Звуковой сигнал - звонок

\b

0x08

BS

Забой (Backspace)

\f

0x0c

FF

Перевод формата

\n

0x0a

LF

Переход на новую строку

\r

0x0d

CR

Возврат каретки

\t

0x09

HT

Горизонтальная табуляция

\v

0x0b

VT

Вертикальная табуляция

\\

0x5c

\

Обратный слэш

\‘

0x27

Простая кавычка (апостроф)

\"

0x22

Двойная кавычка

\?

0x3f

?

Знак вопроса

\N

любой

строка (до 3 восьмеричных цифр)

\xN или \XN

любой

16-ричная константа (строка)


Устранение противоречий. Неоднозначные ситуации могут возникнуть при использовании последовательностей перехода, приведенной ниже:

Lcd_Out_Cp ("\x09 1.0 Вступление");

Они должны восприниматься как \x09 and "1.0 Intro". Но компилятор mikroC поймет их как шестнадцатеричное число «\x091» и буквенную строку «".0 Вступление"». Для исключения подобных ситуаций, необходимо писать код в виде:

Lcd_Out_Cp("\x09" "1.0 Вступление");

Операторы-разделители в МикроСи: [] {} () , ; : * = #.

Квадратные скобки [] предназначены для индексации массивов. С их помощью можно обратиться к элементам массива.

char s[80];

s[3]=’a’;

Фигурные скобки {} показывают начало и конец утверждений. После закрывающей скобки «не требуется ставить «.

If (d==z)

{

++x;

Func();

}

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

d = с * (a + b) ;

if (d == z) ++x; //в скобках проверка условия сравнения

func(); // вызов функции без аргументов

void func2 (int n); // объявление ф-и с параметром n

Запятая «,» разделяет аргументы функции. Запятая также используется как оператор в выражениях с запятой.