Читаем Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С полностью

В процессе определения переменной, которое назначает область памяти и число байтов для ее хранения, можно также установить начальное численное значение этой переменной, т.е. инициализировать переменную. Например, определение целочисленной константы «change» со значением 23 может быть проведено посредством записи:

const int change = 23

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

3.3. Операторы языка Си

Язык Си обладает некоторым набором операторов, которые представлены в табл. 3.2. Полное множество операторов разбито на пять групп: общие, арифметические, логические, битовые манипуляции, унарные.

Операторы общей группы предназначаются для записи выражений на языке Си. Арифметические операторы предназначены для выполнения математических действий над переменными, таких как сложение, вычитание, умножение и деление. Логические операторы используются в выражениях для определения истинности некоторого условия. Битовые операции предназначены для модификации одного или нескольких битов переменной. Унарные операции используются для выполнения действий только над одной переменной.

В первой колонке табл. 3.2. указан приоритет оператора в том случае, если выражение содержит сразу несколько операторов. Приведем примеры последовательности применения операторов.

Приоритет в выраженияхИмя оператораСимвол для обозначения
Общие
1Скобки(), {}
1Разделители-> , .
11Условие?:
12Присваивание=, +=, *= и т.д.
Арифметические
3Умножение*
3Деление/
3Получение целочисленного остатка от деления%
4Сложение+
4Вычитание-
Логические
6Меньше<
6Меньше или равно<=
6Больше>
6Больше или равно>=
7Равно==
7Не равно!=
9Логическое И&&
10Логическое ИЛИ||
Битовые манипуляции
5Сдвиг влево<<
5Сдвиг вправо>>
8Поразрядное И&
8Поразрядное исключающее ИЛИ^
8Поразрядное ИЛИ|
Унарные
2Инверсия!
2Взятие обратного кода числа~
2Инкремент++
2Декремент--
2Минус-
2Привести к типу(type)
2Указатель*
2Взять адрес&
2Определить размерsizeof

Табл. 3.2. Операторы языка Си


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

2 * 23 + 15

Оператор умножения имеет приоритет над оператором сложения, поэтому результат вычисления выражения будет равен 61. Какие изменения мы должны внести в выражение, если хотим сначала сложить 23 и 15, и лишь затем умножить сумму на 2? Для изменения порядка действий над операндами мы воспользуемся круглыми скобками:

2 * (23 + 15)

И результат вычислений станет равным 76.

Фигурные скобки следует использовать для объединения некоторого множества операторов в законченный смысловой блок, например в функцию или цикл «loop». Примеры использования фигурных скобок, а также других операторов из группы общих рассматриваются в разделе 3.4.

Операторы группы арифметических операций. Рассмотрим последовательность выполнения действий над операндами при исполнении микроконтроллером следующего выражения:

Sum = 2 + 3;

Для вычисления значения переменной sum сначала реализуется оператор сложения «+», а затем оператор присваивания «=». В колонке 1 табл. 3.2 отражено, что оператор сложения имеет приоритет над оператором присваивания. При этом необходимо, чтобы переменная sum ранее была определена как int. Что произойдет в случае, если переменная sum ранее была объявлена как переменная другого типа, например float? После сложения результат будет преобразован к тому формату представления числа, который был объявлен при определении переменной sum.

Рассматриваемый пример может быть реализован с использованием другого синтаксиса:

num1 = 2;

num2 = 3;

sum = num1 + num2;

Подразумевается, что все упомянутые переменные num1, num2 и sum ранее были определены.

Операторы инкремента и декремента производят действия только над одной переменной. При этом, три приведенных ниже записи, отличаются синтаксисом выражения, но производят одинаковые действия:

number = number + 1;

number++;

++number;

Аналогично, три следующих записи реализуют операцию декремента, т.е. уменьшения на единицу переменной number.

number = number - 1;

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

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

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных