Файл: описание микроСи .doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.07.2024

Просмотров: 69

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

function name (expression 1, ... , expression n)

где expression 1… expression n - аргументы функции.

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

int limit = 32;

char ch = 'A' ;

long res;

extern long func(long parl, long par2); // прототип

main ()

{

res = func(limit, ch); // вызов функции

}

Получив прототип функции func, программа преобразует limit и ch к виду long, используя стандартные правила преобразования, перед тем, как положит их в стек для вызова функции func.

Операторы

Операторы – символы, сообщающие компилятору о необходимости выполнения каких-либо математических или логических действий.

Есть три больших класса операторов: арифметические, отношения и логические, битовые. Кроме этого существуют специальные операторы: оператор запятая (,),условный оператор (?), оператор массива ([]), оператор вызова функции (()), оператор (Sizeof), операторы препроцессора (#) и (##) и т.д.

Приоритеты операторов и порядок их выполнения

Есть 15 степеней приоритета, некоторые из них содержат только один оператор. Операторы одной категории имеют равный приоритет. Если в таблице появляются дубликаты операторов, то первое появление унарный оператор, во втором случае - бинарный. В каждой категории операторы имеют порядок выполнения: слева направо, или справа налево. При отсутствии круглых скобок, эти правила решают группирование выражений с операторами равного приоритета.

Приоритет

Операторы

Порядок выпонения

15(высший)

() [] . ->

14

! ˜ + -- ++ -* & (тип) sizeof

13

* / %

12

+ - (бинарный)

11

<< >>

10

< <= > >=

9

== !=

8

&

7

ˆ

6

5

&&

4

3

?;

2

= *= /= %= += .= &= »= |= «= » =

1 (низший)

,

-


Арифметические операторы

Арифметические операторы используются для выполнения математических вычислений. Они имеют цифровые операнды и возвращают числовые. Все арифметические операторы выполняются слева направо.

оператор

действие

Бинарные операторы

+

сложение

-

вычитание

*

умножение

/

деление

%

взятие по модулю (остаток) - возвращает разность деления целого (не может быть использован для чисел с плавающей точкой)

Унарные операторы

+

унарный плюс (не влияет на операнд)

-

унарный минус (меняет знак операнда)

++

увеличение (приращение) увеличивает значение на 1, если стоит после оператора – (постфиксный), то добавляет значение после получения программой операнда, если перед операндом(префиксный), то программа производит увеличение до получения операнда. Если

х=10;

y=++x;

y устанавливается в значение 11, а если

x=10;

y=x++;

у устанавливается в значение10.

--

уменьшение (префиксный и постфиксный операторы –см. выше)

Операторы отношения

Применяются для вычисления соотношений между. Если выражение истинно, возвращается 1, в противном случае 0. Все операторы отношения выполняются слева направо.

оператор

действие

==

равно

!=

не равно

>

больше чем

<

меньше чем

>=

больше или равно

<=

меньше или равно


Битовые операторы

Предназначены для тестирования, установки или сдвига битов в байте или слове, которые соответствуют стандартным типам char и int, не могут использоваться с float, double,long и другими сложными типами. Выполняются слева направо, кроме оператора дополнения - выполняется справа налево.

оператор

действие

&

И (AND) - сравнение пары битов, возвращает 1 если оба бита - 1, иначе 0.

I

ИЛИ (OR)возвращает 1 если хотя бы один бит равен 1, иначе 0.

ˆ

Исключающее ИЛИ (XOR) возвращает 1 если соответствующие биты в операндах отличаются, иначе 0.

˜

Дополнение инвертирует каждый бит

«

Сдвиг влево - сдвигает биты влево, уничтожает крайний левый бит и записывает 0 в крайний правый бит.

»

Сдвиг вправо - сдвигает биты вправо, уничтожает крайний правый бит права и в крайний левый бит записывет 0.

Логические операторы

Операнды логических операций считаются истиной или ложью, отличными от нуля или равными нулю. Логические операторы всегда возвращают соотношение между операндами, т.е 1 или 0. Логические операторы && и || выполняются слева направо, кроме оператора отрицания (!) - справа налево.

Оператор

Действие

&&

Логическое И (AND)

||

Логическое ИЛИ (OR)

!

Логическое НЕ

Условный оператор (?)

Условный оператор (?) : - единственный троичный оператор. Синтаксис оператора имеет вид:


<выражение1> ? <выражение2> : <выражение3>

Оператор (?) работает следующим образом: вычисляется выражение1, если оно истинно, то вычисляется выражение2 и все выражение получает это значение. Если оно ложно, то вычисляется выражение3 и все выражение получает это значение, например:

x=10;

y=x>9 ? 100 : 200;

Здесь y получает значение 100, если бы х было меньше, чем 9, то получило бы значение 200.

Оператор присваивания

Простой оператор присваивания (=) применяется для присвоения значения выражения 2 выражению1, в качестве выражения1 может быть переменная, а выражения2 - как одиночная константа, так и комбинация переменных, операторов и констант.

х = 2;

Многочисленное присваивание

Допускается присвоение нескольким переменным одного и того же значения.

x=y=z=0;

Выражения

Операторы, константы и переменные являются составными частями выражений. Выражения – любая допустимая комбинация этих частей.

Операторы управления программой

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

метки, выражения, выбора, циклов, перехода и сложные операторы.

Оператор метки

Метка – идентификатор, завершаемый двоеточием:

label_identifier: оператор;

Обычно метка используется с оператором goto

x=1;

loop1: x++;

if (x<100) goto loop1;

Операторы выражения. Любое выражение, стоящее перед точкой с запятой формирует оператор выражения.

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

Если пустой оператор использован вместе с условным оператором, то синтаксис оператора:

for (; *q++ = *p++ ;); //в цикле отсутствует тело.

С помощью пустого оператора можно организовать, например, задержку.

for (t=0; t<100; t++);

Оператор выбора

Используется для проверки условий, определяющих, какое действие нужно проводить. Если выражение оценивается как истинное, выполняется оператор1, если ложное – оператор2.