Типы данных и их объявление
Желательно давать осмысленное имя переменным и функциям, напоминающие вам об их назначении. Принято использовать маленькие буквы, а для отличия имен переменных от названия функций — имена переменных можно, например, начинать с буквы, а названия функций (кроме main конечно) с двух символов подчеркивания.
Например так:
moya_peremennaya__vasha_funkziya
Внимание!
Глобальные переменные, а также локальные с модификатором static — при старте и рестарте программы равны 0, если вы не присвоили им (например, оператором =) иное значение при их объявлении или по ходу программы.
Подробные примеры объявления переменных посмотрите, пожалуйста, в разделе Variables в «Хелп»компилятора.
Вот несколько примеров объявления переменных:
unsigned char my_peremen = 34;
unsigned int big_peremen = 34034;
Выше объявлены две переменные с присвоением значений.
Пример массива из 3-х переменных mas[3]={11,22,33};
Три элемента: mas[0] mas[1] mas[2]
Нумерация элементов массива начинается с нуля!
Пример: строковая переменная – массив
char stroka[7]=»Hello»;
/* на 2 элемента больше чем символов между кавычками!
Строковый массив может быть распечатан одной строкой:
printf («%sn», stroka);
Так делаются вставки ассемблерных инструкций:
#asm («инструкция на ассемблере»)
Обратите внимание — точки с запятой НЕТ!
Часто используются такие строки:
#asm(«sei») // Разрешить ГЛОБАЛЬНО все прерывания
#asm(«cli») // Запретить ГЛОБАЛЬНО все прерывания
#asm(«nop») // Пауза в 1 такт процессора
#asm(«wdr») // Сбросить сторожевой таймер
4.7. Разделители.
В разделители входят следующие символы:
[], (), {}, , , ; , : , … , * , = , #.
[] — для записи идентифицированных переменных.
Пример №1:
Int A [5] , e[3][2]
( ) применяются для:
1. выделения условия в операторе if;
2. входит как обязательный элемент в определении любой функции;
3. группирует выражения в арифметических операциях;
4. входит как обязательный элемент в операторы цикла: for, white, do.
{ } используется для обозначения начала и конца составного оператора или блока операторов.
Пример №2:
If (d>x) {d—; x++}
Float absx (float x)
{
Return x>0 ? x:-x
}
{ } также используется для выделения списка компонентов в определениях структурных и объединяющих типов, используются для инициализации массивов.
Int month [] = {1, 2, 3, 4, 5, 6, 7,…,12};
, используется либо в качестве операций либо в качестве разделителя. В последнем случае она разделяет элементы из списка.
; каждый оператор, определение и описаний в программе на языке СИ завершается знаком — ;. Любое допустимое выражение, за которым следует ; воспринимается как оперативный отдельный символ, ; считается пустым оператором.
: используется для отделения метки от помечаемого ею оператора.
… используется для обозначения переменного числа параметров.
* используется в качестве знака операции умножения и знака операции разыменования.
= используется для присваивания значений и инициализаций объекта.
# признак препроцессорных средств используется для обозначения директив препроцессора.
4.8 Пример программы на языке СИ:
# include
# include
void delay ( )
{
unsigned char a,b,c;
for (a=1;2;a++)
for (b=1;2;b++)
for (c=1;2;c++)
}
void Led_on (int i)
{
Port a = ~BIT (i);
Delay( );
}
void main ( )
{
unsigned char data;
unsigned char x;
int I;
DDRA=oxFF; /*output*/
DDRC=oxOO;
PORTA=oxFF; /*alloff*/
While (1)
}