AVR123:Глава 5 — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
Строка 15: Строка 15:
 
Эта программа не делает ни чего полезного — но это уже программа и она показывает что в программе на языке Си — должна быть главная функция main — обязательно !
 
Эта программа не делает ни чего полезного — но это уже программа и она показывает что в программе на языке Си — должна быть главная функция main — обязательно !
  
Скачайте и Распечатайте.'''[http://avr123.nm.ru/csyntax.pdf Памятка Си для МК на ОДНОЙ странице.]'''
+
Скачайте и Распечатайте.'''[[http://avr123.nm.ru/csyntax.pdf Памятка Си для МК на ОДНОЙ странице.]'''
  
 
Рассказывая про МК я говорил вам, что:
 
Рассказывая про МК я говорил вам, что:
Строка 454: Строка 454:
  
 
<font color="#3366ff">Ходовые конструкции на Си</font>
 
<font color="#3366ff">Ходовые конструкции на Си</font>
В компиляторе '''[http://avr123.nm.ru/CVAVR CVAVR]''' заготовки этих конструкций находятся под ярлыком "'''Code Templates'''" слева вверху. Вы можете выбирать нужные заготовки и вставлять их в свою программу.
+
В компиляторе '''[[http://avr123.nm.ru/CVAVR CVAVR]''' заготовки этих конструкций находятся под ярлыком "'''Code Templates'''" слева вверху. Вы можете выбирать нужные заготовки и вставлять их в свою программу.
  
 
[[Image:05 temp.png]]
 
[[Image:05 temp.png]]
Строка 585: Строка 585:
 
; break; :- если его не использовать то найдя нужный вариант программа будет выполнять и следующие ниже условия case
 
; break; :- если его не использовать то найдя нужный вариант программа будет выполнять и следующие ниже условия case
  
[http://www.citforum.ru/programming/c/h14.shtml#145 Прочитайте]подробней о ''switch'' с примерами.
+
[[http://www.citforum.ru/programming/c/h14.shtml#145 Прочитайте]подробней о ''switch'' с примерами.
  
[http://avr123.nm.ru/ascii.pdf Скачайте и распечатайте таблицу символов ASCII на ОДНОЙ странице!]
+
[[http://avr123.nm.ru/ascii.pdf Скачайте и распечатайте таблицу символов ASCII на ОДНОЙ странице!]
 +
 
 +
==ОГЛАВЛЕНИЕ==
 +
[http://www.citforum.ru/programming/c/h11.shtml  1.ОПИСАНИЕ ЯЗЫКА СИ]
 +
 
 +
[http://www.citforum.ru/programming/c/h11.shtml#11  1.1. ЭЛЕМЕНТЫ ЯЗЫКА СИ]
 +
 
 +
[http://www.citforum.ru/programming/c/h11.shtml#111  1.1.1. Используемые символы]
 +
 
 +
[http://www.citforum.ru/programming/c/h11.shtml#112  1.1.2. Константы]
 +
 
 +
[http://www.citforum.ru/programming/c/h11.shtml#113  1.1.3. Идентификатор]
 +
 
 +
[http://www.citforum.ru/programming/c/h11.shtml#114  1.1.4. Ключевые слова]
 +
 
 +
[http://www.citforum.ru/programming/c/h11.shtml#115  1.1.5. Использование комментариев в тексте программы]
 +
 
 +
[http://www.citforum.ru/programming/c/h12.shtml#12  1.2. ТИПЫ ДАННЫХ И ИХ ОБ ЯВЛЕНИЕ]
 +
 
 +
[http://www.citforum.ru/programming/c/h12.shtml#121  1.2.1  Категории типов данных]
 +
 
 +
[http://www.citforum.ru/programming/c/h12.shtml#122  1.2.2. Целый тип данных]
 +
 
 +
[http://www.citforum.ru/programming/c/h12.shtml#123  1.2.3. Данные плавающего типа]
 +
 
 +
[http://www.citforum.ru/programming/c/h12.shtml#124  1.2.4. Указатели]
 +
 
 +
[http://www.citforum.ru/programming/c/h12.shtml#125  1.2.5. Переменные перечислимого типа]
 +
 
 +
[http://www.citforum.ru/programming/c/h12.shtml#126  1.2.6. Массивы]
 +
 
 +
[http://www.citforum.ru/programming/c/h12.shtml#127  1.2.7. Структуры]
 +
 
 +
[http://www.citforum.ru/programming/c/h12.shtml#128  1.2.8. Объединения (смеси)]
 +
 
 +
[http://www.citforum.ru/programming/c/h12.shtml#129  1.2.9. Поля битов]
 +
 
 +
[http://www.citforum.ru/programming/c/h12.shtml#1210  1.2.10.  Переменные с изменяемой структурой]
 +
 
 +
[http://www.citforum.ru/programming/c/h12.shtml#1211  1.2.11.  Определение объектов и типов]
 +
 
 +
[http://www.citforum.ru/programming/c/h12.shtml#1212  1.2.12.  Инициализация данных]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#13  1.3.  ВЫРАЖЕНИЯ И ПРИСВАИВАНИЯ]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#131  1.3.1.  Операнды и операции]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#132  1.3.2.  Преобразования при вычислении выражений]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#133  1.3.3.  Операции отрицания и дополнения]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#134  1.3.4.  Операции разадресации и адреса]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#135  1.3.5.  Операция sizeof]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#136  1.3.6.  Мультипликативные операции]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#137  1.3.7.  Аддитивные операции]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#138  1.3.8.  Операции сдвига]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#139  1.3.9.  Поразрядные операции]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#1310  1.3.10.  Логические операции]
 +
 
 +
{{AttentionBlock|правильно вот так:  Операция логического И вырабатывает значение 1 если оба операнда имеют НЕ нулевые значения.|Я обнаружил ошибку в разделе 1.3.10}}                 
 +
[http://www.citforum.ru/programming/c/h13.shtml#1311  1.3.11.  Операция последовательного вычисления]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#1312  1.3.12.  Условная операция]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#1313  1.3.13.  Операции увеличения и уменьшения]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#1314  1.3.14.  Простое присваивание]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#1315  1.3.15.  Составное присваивание]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#1316  1.3.16.  Приоритеты операций и порядок вычислений]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#1317  1.3.17.  Побочные эффекты]
 +
 
 +
[http://www.citforum.ru/programming/c/h13.shtml#1318  1.3.18.  Преобразование типов]
 +
 
 +
[http://www.citforum.ru/programming/c/h14.shtml#14  1.4.  ОПЕРАТОРЫ]
 +
 
 +
[http://www.citforum.ru/programming/c/h14.shtml#141  1.4.1.  Оператор выражение]
 +
 
 +
[http://www.citforum.ru/programming/c/h14.shtml#142  1.4.2.  Пустой оператор]
 +
 
 +
[http://www.citforum.ru/programming/c/h14.shtml#143  1.4.3.  Составной оператор]
 +
 
 +
[http://www.citforum.ru/programming/c/h14.shtml#144  1.4.4.  Оператор if]
 +
 
 +
[http://www.citforum.ru/programming/c/h14.shtml#145  1.4.5.  Оператор switch]
 +
 
 +
[http://www.citforum.ru/programming/c/h14.shtml#146  1.4.6.  Оператор break]
 +
 
 +
[http://www.citforum.ru/programming/c/h14.shtml#147  1.4.7.  Оператор for]
 +
 
 +
[http://www.citforum.ru/programming/c/h14.shtml#148  1.4.8.  Оператор while]
 +
 
 +
[http://www.citforum.ru/programming/c/h14.shtml#149  1.4.9.  Оператор do while]
 +
 
 +
[http://www.citforum.ru/programming/c/h14.shtml#1410  1.4.10.  Оператор continue]
 +
 
 +
[http://www.citforum.ru/programming/c/h14.shtml#1411  1.4.11.  Оператор return]
 +
 
 +
[http://www.citforum.ru/programming/c/h14.shtml#1412  1.4.12.  Оператор goto]
 +
 
 +
[http://www.citforum.ru/programming/c/h15.shtml#15  1.5.  ФУНКЦИИ]
 +
 
 +
[http://www.citforum.ru/programming/c/h15.shtml#151  1.5.1.  Определение и вызов функций]
 +
 
 +
[http://www.citforum.ru/programming/c/h15.shtml#152  1.5.2.  Вызов функции с переменным числом параметров]
 +
 
 +
[http://www.citforum.ru/programming/c/h15.shtml#153  1.5.3.  Передача параметров функции main]
 +
 
 +
[http://www.citforum.ru/programming/c/h16.shtml#16  1.6.  СТРУКТУРА ПРОГРАММЫ И КЛАССЫ ПАМЯТИ]
 +
 
 +
[http://www.citforum.ru/programming/c/h16.shtml#161  1.6.1.  Исходные файлы и объявление переменных]
 +
 
 +
[http://www.citforum.ru/programming/c/h16.shtml#162  1.6.2.  Объявления функций]
 +
 
 +
[http://www.citforum.ru/programming/c/h16.shtml#163  1.6.3.  Время жизни и область видимости программных объектов]
 +
 
 +
[http://www.citforum.ru/programming/c/h16.shtml#164  1.6.4.  Инициализация глобальных и локальных переменных]
 +
 
 +
[http://www.citforum.ru/programming/c/h17.shtml#17  1.7.  УКАЗАТЕЛИ И АДРЕСНАЯ АРИФМЕТИКА]
 +
 
 +
[http://www.citforum.ru/programming/c/h17.shtml#171  1.7.1.  Методы доступа к элементам массивов]
 +
 
 +
[http://www.citforum.ru/programming/c/h17.shtml#172  1.7.2.  Указатели на многомерные массивы]
 +
 
 +
[http://www.citforum.ru/programming/c/h17.shtml#173  1.7.3.  Операции с указателями]
 +
 
 +
[http://www.citforum.ru/programming/c/h17.shtml#174  1.7.4.  Массивы указателей]
 +
 
 +
[http://www.citforum.ru/programming/c/h17.shtml#175  1.7.5.  Динамическое размещение массивов]
 +
 
 +
[http://www.citforum.ru/programming/c/h18.shtml#18  1.8.  ДИРЕКТИВЫ ПРЕПРОЦЕССОРА]
 +
 
 +
[http://www.citforum.ru/programming/c/h18.shtml#181  1.8.1.  Директива #include]
 +
 
 +
[http://www.citforum.ru/programming/c/h18.shtml#182  1.8.2.  Директива #define]
 +
 
 +
[http://www.citforum.ru/programming/c/h18.shtml#183  1.8.3.  Директива #undef]
 +
 
 +
[http://www.citforum.ru/programming/c/h21.shtml#2  2.  ОРГАНИЗАЦИЯ СПИСКОВ И ИХ ОБРАБОТКА]
 +
 
 +
[http://www.citforum.ru/programming/c/h21.shtml#21  2.1.  ЛИНЕЙНЫЕ СПИСКИ]
 +
 
 +
[http://www.citforum.ru/programming/c/h21.shtml#211  2.1.1.  Методы организации и хранения линейных списков]
 +
 
 +
[http://www.citforum.ru/programming/c/h21.shtml#212  2.1.2.  Операции со списками при последовательном хранении]
 +
 
 +
[http://www.citforum.ru/programming/c/h21.shtml#213  2.1.3.  Операции со списками при связном хранении]
 +
 
 +
[http://www.citforum.ru/programming/c/h21.shtml#214  2.1.4.  Организация двусвязных списков]
 +
 
 +
[http://www.citforum.ru/programming/c/h21.shtml#215  2.1.5.  Стеки и очереди]
 +
 
 +
[http://www.citforum.ru/programming/c/h21.shtml#216  2.1.6.  Сжатое и индексное хранение линейных списков]
 +
 
 +
[http://www.citforum.ru/programming/c/h22.shtml#22  2.2.    СОРТИРОВКА И СЛИЯНИЕ СПИСКОВ]
 +
 
 +
[http://www.citforum.ru/programming/c/h22.shtml#221  2.2.1.  Пузырьковая сортировка]
 +
 
 +
[http://www.citforum.ru/programming/c/h22.shtml#222  2.2.2.  Сортировка вставкой]
 +
 
 +
[http://www.citforum.ru/programming/c/h22.shtml#223  2.2.3.  Сортировка посредством выбора]
 +
 
 +
[http://www.citforum.ru/programming/c/h22.shtml#224  2.2.4.  Слияние списков]
 +
 
 +
[http://www.citforum.ru/programming/c/h22.shtml#225  2.2.5.  Сортировка списков путем слияния]
 +
 
 +
[http://www.citforum.ru/programming/c/h22.shtml#226  2.2.6.  Быстрая и распределяющая сортировки]
 +
 
 +
[http://www.citforum.ru/programming/c/h23.shtml#23  2.3.    ПОИСК И ВЫБОР В ЛИНЕЙНЫХ СПИСКАХ]
 +
 
 +
[http://www.citforum.ru/programming/c/h23.shtml#231  2.3.1.  Последовательный поиск]
 +
 
 +
[http://www.citforum.ru/programming/c/h23.shtml#232  2.3.2.  Бинарный поиск]
 +
 
 +
[http://www.citforum.ru/programming/c/h23.shtml#233  2.3.3. М-блочный поиск]
 +
 
 +
[http://www.citforum.ru/programming/c/h23.shtml#234  2.3.4.  Методы вычисления адреса]
 +
 
 +
[http://www.citforum.ru/programming/c/h23.shtml#235  2.3.5.  Выбор в линейных списках]
 +
 
 +
[http://www.citforum.ru/programming/c/h24.shtml  2.4.  РЕКУРСИЯ ]
 +
 
 +
[http://www.citforum.ru/programming/c/h11.shtml  Чтение по порядку глав]
 +
 
 +
Вообще сайт [http://www.citforum.ru/programming/c.shtml  СитФорум] по программированию ПК рулит!
 +
 
 +
 
 +
==Оглавление==
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/preface/  Предисловие]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/preface/#preface_to_1st  Предисловие к первому изданию ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/intro/  Введение ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/list_error/  Список ошибок, допущенных в книгеhr ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/1/  Глава 1. Обзор языка]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/1/#p11  1.1 Начнем, пожалуй ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/1/#p12  1.2 Переменные и арифметические выражения ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/1/#p13  1.3 Инструкция for ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/1/#p14  1.4 Именованные константы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/1/#p15  1.5 Ввод-вывод символов ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/1/#p151  1.5.1 Копирование файла ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/1/#p152  1.5.2 Подсчет символов ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/1/#p153  1.5.3 Подсчет строк ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/1/#p154  1.5.4 Подсчет слов ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/1/#p16  1.6 Массивы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/1/#p17  1.7 Функции ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/1/#p18  1.8 Аргументы. Вызов по значению ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/1/#p19  1.9 Символьные массивы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/1/#p110  1.10 Внешние переменные и область видимости]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/2/  Глава 2. Типы, операторы и выражения ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/2/#p21  2.1 Имена переменных ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/2/#p22  2.2 Типы и размеры данных ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/2/#p23  2.3 Константы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/2/#p24  2.4 Объявления ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/2/#p25  2.5 Арифметические операторы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/2/#p26  2.6 Операторы отношения и логические операторы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/2/#p27  2.7 Преобразования типов ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/2/#p28  2.8 Операторы инкремента и декремента ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/2/#p29  2.9 Побитовые операторы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/2/#p210  2.10 Операторы и выражения присваивания ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/2/#p211  2.11 Условные выражения ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/2/#p212  2.12 Приоритет и очередность вычислений]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/3/  Глава 3. Управление ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/3/#p31  3.1 Инструкции и блоки ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/3/#p32  3.2 Конструкция if-else ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/3/#p33  3.3 Конструкцияn else-if ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/3/#p34  3.4 Переключатель switch ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/3/#p35  3.5 Циклы while и ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/3/#p36  3.6 Цикл do-while ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/3/#p37  3.7 Инструкции break и continue ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/3/#p38  3.8 Инструкция goto и метки]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/4/  Глава 4. Функции и структура программы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/4/#p41  4.1 Основные сведения о функциях ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/4/#p42  4.2 Функции, возвращающие нецелые значения ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/4/#p43  4.3 Внешние переменные ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/4/#p44  4.4 Области видимости ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/4/#p45  4.5 Заголовочные файлы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/4/#p46  4.6 Статические переменные ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/4/#p47  4.7 Регистровые переменные ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/4/#p48  4.8 Блочная структура ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/4/#p49  4.9 Инициализация ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/4/#p410  4.10 Рекурсия ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/4/#p411  4.11 Препроцессор языка Си ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/4/#p4111  4.11.1 Включение файла ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/4/#p4112  4.11.2 Макроподстановка ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/4/#p4113  4.11.3 Условная компиляция]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/5/  Глава 5. Указатели и массивы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/5/#p51  5.1 Указатели и адреса ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/5/#p52  5.2 Указатели и аргументы функций ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/5/#p53  5.3 Указатели и массивы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/5/#p54  5.4 Адресная арифметика ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/5/#p55  5.5 Символьные указатели функции ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/5/#p56  5.6 Массивы указателей, указатели на указатели ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/5/#p57  5.7 Многомерные массивы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/5/#p58  5.8 Инициализация массивов указателей ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/5/#p59  5.9 Указатели против многомерных массивов ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/5/#p510  5.10 Аргументы командной строки ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/5/#p511  5.11 Указатели на функции ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/5/#p512  5.12 Сложные объявления]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/6/  Глава 6. Структуры ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/6/#p61  6.1 Основные сведения о структурах ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/6/#p62  6.2 Структуры и функции ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/6/#p63  6.3 Массивы структур ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/6/#p64  6.4 Указатели на структуры ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/6/#p65  6.5 Структуры со ссылками на себя ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/6/#p66  6.6 Просмотр таблиц ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/6/#p67  6.7 Средство typedef ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/6/#p68  6.8 Объединения ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/6/#p69  6.9 Битовые поля]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/7/  Глава 7. Ввод и вывод ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/7/#p71  7.1 Стандартный ввод-вывод ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/7/#p72  7.2 Форматный вывод (printf) ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/7/#p73  7.3 Списки аргументов переменной длины ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/7/#p74  7.4 Форматный ввод (scanf) ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/7/#p75  7.5 Доступ к файлам ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/7/#p76  7.6 Управление ошибками (stderr и exit) ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/7/#p77  7.7 Ввод-вывод строк ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/7/#p78  7.8 Другие библиотечные функции ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/7/#p781  7.8.1 Операции со строками ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/7/#p782  7.8.2 Анализ класса символов и преобразование символов ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/7/#p783  7.8.3 Функция ungetc ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/7/#p784  7.8.4 Исполнение команд операционной системы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/7/#p785  7.8.5 Управление памятью ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/7/#p786  7.8.6 Математические функции ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/7/#p787  7.8.7 Генератор случайных чисел]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/8/  Глава 8. Интерфейс с системой UNIX ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/8/#p81  8.1 Дескрипторы файлов ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/8/#p82  8.2 Нижний уровень ввода-вывода (read и write) ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/8/#p83  8.3 Системные вызовы open, creat, close, unlink ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/8/#p84  8.4 Произвольный доступ (lseek) ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/8/#p85  8.5 Пример. Реализация функций fopen и getc ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/8/#p86  8.6 Пример. Печать каталогов ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/8/#p87  8.7 Пример. Распределитель памяти]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/preface/a/  Приложение A. Справочное руководство ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a1  A1. Введение ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a2  A2. Соглашения о лексике ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a2_1  A2.1. Лексемы (tokens) ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a2_2  A2.2. Комментарий ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a2_3  A2.3. Идентификаторы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a2_4  A2.4. Ключевые слова ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a2_5  A2.5. Константы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a2_5_1  A2.5.1. Целые константы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a2_5_2  A2.5.2. Символьные константы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a2_5_3  А2.5.3. Константы с плавающей точкой ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a2_5_4  A2.5.4. Константы-перечисления ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a2_6  A2.6. Строковые литералы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a3  A3. Нотация синтаксиса ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a4  A4. Что обозначают идентификаторы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a4_1  A4.1. Класс памяти ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a4_2  A4.2. Базовые типы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a4_3  A4.3. Производные типы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a4_4  A4.4. Квалификаторы типов ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a5  A5. Объекты и Lvalues ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a6  A6. Преобразования ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a6_1  A6.1. Целочисленное повышение ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a6_2  A6.2. Целочисленные преобразования ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a6_3  A6.3. Целые и числа с плавающей точкой ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a6_4  A6.4. Типы с плавающей точкой ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a6_5  А6.5. Арифметические преобразования ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a6_6  A6.6. Указатели и целые ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a6_7  A6.7. Тип void ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a6_8  А6.8. Указатели на void ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7  A7. Выражения ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_1  A7.1. Генерация указателя ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_2  A7.2. Первичные выражения ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_3  A7.3. Постфиксные выражения ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_3_1  A7.3.1. Обращение к элементам массива ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_3_2  A7.3.2. Вызов функции ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_3_3  A7.3.3. Обращение к структурам ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_3_4  A7.3.4. Постфиксные операторы инкремента и декремента ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_4  А7.4. Унарные операторы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_4_1  А7.4.1. Префиксные операторы инкремента и ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_4_2  A7.4.2. Оператор получения адреса ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_4_3  A7.4.3. Оператор косвенного доступа ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_4_4  A7.4.4. Оператор унарный плюс ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_4_5  A7.4.5. Оператор унарный минус ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_4_6  A7.4.6. Оператор побитового отрицания ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_4_7  A7.4.7. Оператор логического отрицания ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_4_8  A7.4.8. Оператор определения размера sizeof ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_5  A7.5. Оператор приведения типа ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_6  A7.6. Мультипликативные операторы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_7  A7.7. Аддитивные операторы ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_8  A7.8. Операторы сдвига ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_9  A7.9. Операторы отношения ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_10  A7.10. Операторы равенства ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_11  A7.11. Оператор побитового И ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_12  A7.12. Оператор побитового исключающего ИЛИ ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_13  A7.13. Оператор побитового ИЛИ ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_14  A7.14. Оператор логического И ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_15  A7.15. Оператор логического ИЛИ ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_16  А7.16. Условный оператор ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_17  A7.17. Выражения присваивания ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_18  A7.18. Оператор запятая ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a7_19  A7.19. Константные выражения ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a8  A8. Объявления ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a8_1  A8.1. Спецификаторы класса памяти ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a8_2  А8.2. Спецификаторы типа ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a8_3  A8.3. Объявления структур и объединений ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a8_4  A8.4. Перечисления ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a8_5  А8.5. Объявители ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a8_6  A8.6. Что означают объявители ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a8_6_1  A8.6.1. Объявители указателей ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a8_6_2  А8.6.2. Объявители массивов ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a8_6_3  А8.6.3. Объявители функций ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a8_7  A8.7. Инициализация ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a8_8  A8.8. Имена типов ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a8_9  А8.9. Объявление ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a8_10  A8.10. Эквивалентность типов ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a9  A9. Инструкции ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a9_1  A9.1. Помеченные инструкции ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a9_2  A9.2. Инструкция-выражение ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a9_3  A9.3. Составная инструкция ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a9_4  A9.4. Инструкции выбора ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a9_5  A9.5. Циклические инструкции ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a9_6  A9.6. Инструкции перехода ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a10  А10. Внешние объявления ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a10_1  A10.1. Определение функции ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a10_2  A10.2. Внешние объявления ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a11  A11. Область видимости и связи ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a11_1  A11.1. Лексическая область видимости ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a11_2  A11.2. Связи ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a12  A12. Препроцессирование ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a12_1  A12.1. Трехзнаковые последовательности ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a12_2  A12.2. Склеивание строк ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a12_3  А12.3. Макроопределение и макрорасширение ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a12_4  A12.4. Включение файла ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a12_5  A12.5. Условная компиляция ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a12_6  A12.6. Нумерация строк ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a12_7  A12.7. Генерация сообщения об ошибке ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a12_8  A12.8. Прагма ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a12_9  A12.9. Пустая директива ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a12_10  A12.10. Заранее определенные имена ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/a/#a13  A13. Грамматика]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/  Приложение B. Стандартная библиотека ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b1  B1. Ввод-вывод: stdio. ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b11  B1.1. Операции над файлами ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b12  B1.2. Форматный вывод ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b13  B1.3. Форматный ввод ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b14  B1.4. Функции ввода-вывода символов ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b15  B1.5. Функции прямого ввода-вывода ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b16  B1.6. Функции позиционирования файла ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b17  B1.7. Функции обработки ошибок ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b2  B2. Проверки класса символа: ctype. ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b3  B3. Функции, оперирующие со строками: string. ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b4  B4. Математические функции: math. ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b5  B5. Функции общего назначения: stdlib. ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b6  B6. Диагностика: assert. ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b7  B7. Списки аргументов переменной длины: stdarg.]
 +
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b8  B8. Дальние переходы: setjmp. ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b9  B9. Сигналы: signal. ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b10  B10. Функции даты и времени: time. ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/b/#b111  B11. Зависящие от реализации пределы: limits.и float.]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/c/  Приложение С. Перечень измененийhr ]
 +
 
 +
[http://masterpc.alfaspace.net/books/CCScience/book_C_programming/pointer/  Предметный указатель - язык Си ]
 +
 
 +
--[[Участник:Nekolex|Nekolex]] 20:47, 27 сентября 2009 (UTC)

Версия 20:47, 27 сентября 2009

Вернуться на главную

Язык Си для AVR.

Как раз то, что необходимо и достаточно для микроконтроллеров.

По умолчанию компилятор CVAVR

В других компиляторах могут быть незначительные отклонения, нюансы не связанные с языком Си, а обусловленные стараниями и предпочтениями разработчиков этих компиляторов.

Минимальная программа на Си может быть такой: <source lang="c">main(){}</source> Эта программа не делает ни чего полезного — но это уже программа и она показывает что в программе на языке Си — должна быть главная функция main — обязательно !

Скачайте и Распечатайте.[Памятка Си для МК на ОДНОЙ странице.

Рассказывая про МК я говорил вам, что: Задача программы МК:

  • читать числа из регистров и памяти МК,
  • делать что-то с числами, данными и
  • записывать числа в регистры и память.

Только так программа может общаться с МК.

Как это делать на языке Си

Регистры МК
( регистры - это ячейки-байты в памяти МК AVR ) в программе на Си имеют названия как и в ДШ и так как числа в большинстве из них можно менять - для программы регистры являются по сути переменными.
Переменная
- это набор ячеек в памяти в которых можно хранить число или числа и менять их. Переменная имеет адрес и имя.
Константа
- это как переменная но менять содержимое нельзя.

Подробней о переменных и константах написано ниже.

1) Чтобы поместить число в переменную (в регистр) в языке Си есть оператор присваивания

это знак "=" ( называемый в математике "равно" ) "=" в Си означает вычислить результат того что справа от оператора присваивания и поместить этот результат в переменную находящуюся левее оператора присваивания.

Информация
Запомните!

В Си знак "=" НЕ означает равенство!



<source lang="c"> PORTB = PINB + 34;/* Эта строчка на Си означает взять (прочитать, считать) значение переменной (регистра) PINB, затем прибавить к нему число 34 и поместить результат в переменную PORTB */

ПЕРЕМЕННАЯ = PINC; /* Эта строчка на Си означает взять (прочитать, считать) значение переменной (регистра) PINC и поместить результат в переменную с именем ПЕРЕМЕННАЯ */ </source> Чтобы в Си взять (прочитать) число из регистра или значение переменной нужно написать его название НЕ непосредственно с лева от оператора присваивания !

Примеры :
a) Строка где переменная стоит слева от = но через знак &

<source lang="c">PORTB & = 0x23;</source>

на Си означает - прочитать содержимое переменной PORTB, затем выполнить "поразрядное (побитное) логическое И" между прочитанным значением и числом 0x23 и поместить (записать, присвоить) результат в переменную PORTB

b) Строка где переменная стоит непосредственно слева от =

<source lang="c">PORTB = 0x23;</source>

на Си означает - не читая содержимое переменной PORTB присвоить ей значение 0x23 уничтожив то что было там раньше.

:Вместо & "И" (AND - только 1 и 1 дают 1) могут быть и другие побитные логические операции:
• | "ИЛИ" (OR только 0 и 0 дают 0)
• ^ "Исключающее ИЛИ" (XOR изменить бит напротив "1")
• ~ "инвертирование битов" (INV изменить биты регистра)
• арифметические операции: + - * / %

С оператором присваивания используются вот такие сокращения:

ДЛИННАЯ ЗАПИСЬ СМЫСЛ СОКРАЩАЕТСЯ ДО
x = x + 1; добавить 1 x++; или ++x;
x = x - 1; вычесть 1 x--; или --x;
x = x + y; прибавить y x += y;
x = x - y; вычесть y x -= y;
x = x * y; умножить на y x *= y;
x = x / y; поделить на y x /= y;
x = x % y; остаток от деления x %= y;
x--; вычесть 1 x -= 1;
x++; добавить 1 x += 1;
Примеры :

<source lang="c"> 00010010 | 01001111 // "ИЛИ" - только 0 и 0 дают 0 // англ. название OR

01011111 // это результат

// только биты_5 в обоих числах были нули

00010010 & 01001111 // "И" - только 1 и 1 дают 1 // англ. название AND

00000010 // это результат

// только биты_2 в обоих числах были единицы

00010010 ^ 01001111/* "исключающее ИЛИ" - результат любое из пары чисел в котором инвертированы (изменены) биты напротив битов равных "1" в другом числе. англ. название XOR */ 01011101 // это результат /* изменились биты во втором числе напротив установленных битов 4 и 1 первого числа. */

~ 01001111 /* инвертировать биты те что были "1" станут "0" и наоборот */ 10110000 // это результат</source>

Запомните !
Результатом поразрядных (побитных)

логических операций : & | ^ ~ является число ! Которое может быть интерпретировано компилятором как "истина" если оно не ноль и "ложно" если число ноль.

Числа

В компиляторе можно записывать в виде указанном в его Help ! Раздел - константы - Constants.

например - Целые числа могут быть записаны : <source lang="c"> - в десятичной форме - 1234

- в двоичной форме с префиксом 0b так: 0b101001

- в шестнадцатеричной форме с префиксом 0x так: 0x5А

- в восьмеричной форме с префиксом 0 так: 0775</source>

Числа с плавающей точкой имеют в записи эту точку и какое либо число после этой точки, так: <source lang="c">61.234 или так: 73.0 и так: .786

и могут иметь в конце F вот так: 61.234F</source> ТОЧКА ОБЯЗАТЕЛЬНА !

Различные представления числа D3h равно 0xD3 равно 0b1101 0011 равно 211
шестнадцатеричное число 0xD3
0 x D 3
двоичное представление - число 0b1101 0011
0 b 1 1 0 1 0 0 1 1
номера бита 7 6 5 4 3 2 1 0
два в степени равной номеру бита
128 64 32 16 8 4 2 1
число 211 в десятичном виде это сумма степеней двойки где биты равны "1"
Сложите +128 +64 +16 +2 +1

Четыре бита это 1 "нибл" (полубайт) или 1 символ в 16-ричной системе или десятичное число от 0 до 15.

"В уме" удобно оперировать ниблами:двоичный десятичный 16-ричный

двоичный десятичный 16-ричный
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 10 A
1011 11 B
1100 12 C
1101 13 D
1110 14 E
1111 15 F

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

Есть в Си операции которые изменяют значение переменной и без оператора присваивания : <source lang="c"> PORTA++; /* Эта строчка на Си означает взять значение переменной PORTA добавить к ней 1 и записать результат обратно в PORTA говорят: Инкрементировать регистр PORTA */

PORTC--; /* Эта строчка на Си означает обратное действие! Декрементировать - вычесть 1 из значения регистра PORTC */ </source>

Инкремент и декремент удобно использовать для изменения значения различных переменных счетчиков.

Важно помнить что они имеют очень низкий приоритет - поэтому чтобы быть уверенными в порядке выполнения желательно писать их отдельной строчкой программы !

Информация
Обратите внимание !

В конце выражения или конструкции в программе на Си ставят точку с запятой.



Длинные выражения можно писать в несколько строк. <source lang="c"> /* ЗЕЛЕНЫМ я пишу комментарий к программе в Си он может быть написан в несколько строк

и пустых строк тоже */

// или в одну после двух черточек </source> Компилятор игнорирует все что написано в комментариях !

Вы не компилятор !

Не игнорируйте, пишите комментарии и читайте !

Когда инкремент или декремент используется в выражении то важно где стоят два знака + или - перед переменной или после переменной : <source lang="c"> a=4; b=7;

a = b++; /* Эта строчка на Си означает Взять значение переменной b присвоить его переменной a затем добавить 1 к переменной b и сохранить результат в b

Теперь a будет содержать число 7 b будет содержать число 8 */

a=4; b=7;

a = ++b; /* Эта строчка на Си означает Взять значение переменной b затем добавить к нему 1 и сохранить результат в b и этот же результат присвоить переменной a

Теперь a будет содержать число 8 и b будет содержать число 8 */ </source>

2) Арифметические операции в Си

<source lang="c"> x + y // сложение x - y // вычитание x * y // умножение

x / y /* деление.

Если числа целые результат - целое число с отброшенной дробной частью - не округленное !

т.е. если в результате деления на калькуляторе получается 6.23411 или 6.94 то результат будет просто целое число 6 - запомните !

Если числа с плавающей точкой, то есть float или double и записываются с точкой и числом после точки, то и результат будет число с плавающей точкой без отбрасывания дробной части 131.9739 / 6.18 даст 21.355 */

x % y // вычислить остаток от деления нацело

// примеры:

5 / 2 // даст 2

5 % 2 // даст 1

75 / 29 // даст 2

75 % 29 // даст 17 </source>

3) Операторы сравнения (или отношения):

<source lang="c"> используются для сравнения переменных, чисел (констант) и выражений. x < y // X меньше Y x > y // больше x <= y // меньше или равно x >= y // больше или равно x == y // равно x != y /* не равно

Результат выполнения этих операторов:

"истина" это "1" (точнее "не ноль")

"ложно" это "0"

Значения хранимые в переменных (в регистрах) х и у НЕ изменяются!

Берутся (считываются) значения хранящиеся (или содержащиеся) в переменных и сравниваются */

! /* "НЕ" - логическое отрицание */ </source>

4) Логические операции :

<source lang="c"> | | // "ИЛИ" - только "ложь" и "ложь" // дают "ложь"

&& // "И" - только "истина" и "истина" // дают "истина"

! // "НЕ" - логическое отрицание

/* Правило - в Си считается:

"Ложь" (False) только ноль.

"Истина"(True)- не ноль. или так: (!0)

  • /

!(истина) // дает "ложь"

!(ложь) // дает "истина" </source> В результате логической операции вы получаете НЕ ЧИСЛО, а логическое значение "истина" или "ложь"

Для логических операций && и || берутся результаты выражений слева и справа от знака операции преобразованные в "истину" или "ложь" и определяется логический результат операции.

Компилятор, для определенности наверно, результат "истина" превращает в 1 а не в любое отличное от 0 число.

Логические операции могут объединять несколько проверяемых условий.

Пример:

<source lang="c"> if((выражение1)&&((выражение2) || (выражение3))) {/* Код программы здесь будет выполняться если: Выражение1 "Истина" (значит не ноль) и хотя бы одно из выражений 2 и 3 тоже "Истина" (значит не ноль).

  • /};</source>

Подробнее о логических операциях обязательно прочитайте по в низу этой страницы !

Приоритет операций в языке Си перечислены в порядке убывания приоритета. Операции, приведённые на одной строчке, имеют одинаковый приоритет. Операции, помеченные как R->L, исполняются справа налево.

  1. () [] -> .
  2. Унарные (R->L): ! ~ - * & sizeof (type) ++ --
  3. Бинарные арифметические: * / %
  4. Бинарные арифметические + -
  5. Сдвиг: << >>
  6. Сравнение: < <= > >=
  7. Сравнение: == !=
  8. Битовая: &
  9. Битовая: ^
  10. Битовая: |
  11. Логическая: &&
  12. Логическая: ||
  1. Тернарная (R->L): ?:
  2. Операции с присваиванием (R->L):
= += -= = /= &= |= ^= <<= >>=

{

{InfoBlock|Чтобы точно знать порядок выполнения операций программой используйте скобки ( )

( () + ( () * () ) ) Ведь скобки ( ) имеют наивысший приоритет.|Совет:}}

Самое интересное !

Ходовые конструкции на Си В компиляторе [CVAVR заготовки этих конструкций находятся под ярлыком "Code Templates" слева вверху. Вы можете выбирать нужные заготовки и вставлять их в свою программу.

05 temp.png

5) if(){ }else{ }; идеальная конструкция если вам нужно выполнить какую то часть программы при наличии каких либо

условий или при их отсутствии :

<source lang="c"> if (выражение) { код на Си /* делать этот код если выражение "истина" - т.е. результат его вычисления не ноль */ } else { код на Си /* делать этот код если выражение "ложь" - т.е. результат его вычисления равен нулю */ };

// } else { это не обязательный элемент конструкции, без него так :

if (выражение) { код на Си /* делать этот код если выражение "истина" - т.е. результат его вычисления не ноль */ }; </source>

6)while(){ }; условный цикл ( цикл с условием ) - используйте если вам

нужно выполнять какой то код программы пока выполняется (существует,

справедливо, "истино" - значит "не ноль") некоторое условие, результат вычисления выражения :

<source lang="c"> while (выражение) { код на Си /* делать этот код если выражение "истина" - т.е. результат его вычисления не ноль. Пока выполняется этот код выражение не проверяется на истинность ! После выполнения кода происходит переход к строке while снова проверять истинность выражения */ }; </source> Цикл while имеет вариант

do - while при котором код в { } выполняется по меньшей мере один раз не зависимо от истинности условия в скобках : <source lang="c"> do { код на Си /* сделать этот код один раз

затем, если выражение есть "истина" - т.е. результат его вычисления не ноль - опять делать код с начала, и так до тех пор пока выражение истина */ } while (выражение); </source> 7) for(;;){ }; - этот цикл позволяет выполнить часть программы нужное число раз: <source lang="c"> char i; /* объявление переменной для for это обычная переменная Си и значит может иметь любое допустимое имя по вашему желанию и тип */ for (i=5; i i = 5 это начальное выражение, то что в начале будет в переменной i

Число 5 просто для примера, может быть таким, как позволяет объявление типа переменной i, в нашем случае это char в большинстве компиляторов по-умолчанию это без знаковый символьный тип - он может хранить числа от 0 до 255 i < 20 - контрольное выражение Может быть с разными операторами отношения, важно лишь чтобы по ходу цикла оно становилось когда-то "ложью" - иначе цикл "зациклится" т.е. ни когда не кончится.

i += 4 - это счетчик или изменение переменной цикла. Обычно это i++ т.е.к переменной добавляется 1 каждый "прогон" цикла. Но опять же может быть таким какое вам требуется.

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

i =(7 + i*4) или i = (функция других переменных)

<source lang="c"> Циклы for(;;) и while()

часто используют вот так:

while(1);

for (;;);

/* Так написанные эти циклы означают :

МК выполнять эту строчку пока есть питание, нет сброса и нет прерывания. Когда возникает прерывание, программа переходит на обработчик прерывания и (если в обработчике нет перехода в другое место программы) по завершении кода обработчика опять возвращается в такой цикл. */

while(1){ код программы };

for (;;){ код программы };

/* Так написанные эти циклы означают :

МК выполнять код программы пока есть питание, нет сброса и нет прерывания. Когда возникает прерывание, программа переходит на обработчик прерывания и (если в обработчике нет перехода в другое место программы) по завершении кода обработчика опять возвращается сюда и продолжает выполнять код программы */ </source>

8)switch(){ }; - оператор множественного выбора,

позволяет вам сделать выбор из нескольких вариантов. <source lang="c"> switch (выражение) { case 5: код на Си /* этот код будет выполняться если результат вычисления выражения равен числу 5

на этом работа оператора switch закончится */ break;

case -32: код на Си /* этот код будет выполняться если результат вычисления выражения равен отрицательномц числу -32

на этом работа оператора switch закончится */ break;

case 'G': код на Си /* этот код будет выполняться если результат вычисления выражения равен числу соответствующему символу G в таблице ASCII

на этом работа оператора switch закончится */ break;

default: код на Си /* этот код будет выполняться если результат вычисления выражения не равен ни 5 ни -32 ни 'G'

А так же после выполнения кода не имеющего в конце break;

на этом работа оператора switch закончится */ };

/* switch закончен - выполняется дальнейший код программы */ </source>

case 
- может быть столько сколько вам нужно, чтобы программа работала быстрее старайтесь наиболее вероятные варианты располагать выше!
default 
- не обязателен. Его можно расположить и не в конце.
break; 
- если его не использовать то найдя нужный вариант программа будет выполнять и следующие ниже условия case

[Прочитайтеподробней о switch с примерами.

[Скачайте и распечатайте таблицу символов ASCII на ОДНОЙ странице!

ОГЛАВЛЕНИЕ

1.ОПИСАНИЕ ЯЗЫКА СИ

1.1. ЭЛЕМЕНТЫ ЯЗЫКА СИ

1.1.1. Используемые символы

1.1.2. Константы

1.1.3. Идентификатор

1.1.4. Ключевые слова

1.1.5. Использование комментариев в тексте программы

1.2. ТИПЫ ДАННЫХ И ИХ ОБ ЯВЛЕНИЕ

1.2.1 Категории типов данных

1.2.2. Целый тип данных

1.2.3. Данные плавающего типа

1.2.4. Указатели

1.2.5. Переменные перечислимого типа

1.2.6. Массивы

1.2.7. Структуры

1.2.8. Объединения (смеси)

1.2.9. Поля битов

1.2.10. Переменные с изменяемой структурой

1.2.11. Определение объектов и типов

1.2.12. Инициализация данных

1.3. ВЫРАЖЕНИЯ И ПРИСВАИВАНИЯ

1.3.1. Операнды и операции

1.3.2. Преобразования при вычислении выражений

1.3.3. Операции отрицания и дополнения

1.3.4. Операции разадресации и адреса

1.3.5. Операция sizeof

1.3.6. Мультипликативные операции

1.3.7. Аддитивные операции

1.3.8. Операции сдвига

1.3.9. Поразрядные операции

1.3.10. Логические операции

Внимание!
Я обнаружил ошибку в разделе 1.3.10

правильно вот так: Операция логического И вырабатывает значение 1 если оба операнда имеют НЕ нулевые значения.



1.3.11. Операция последовательного вычисления

1.3.12. Условная операция

1.3.13. Операции увеличения и уменьшения

1.3.14. Простое присваивание

1.3.15. Составное присваивание

1.3.16. Приоритеты операций и порядок вычислений

1.3.17. Побочные эффекты

1.3.18. Преобразование типов

1.4. ОПЕРАТОРЫ

1.4.1. Оператор выражение

1.4.2. Пустой оператор

1.4.3. Составной оператор

1.4.4. Оператор if

1.4.5. Оператор switch

1.4.6. Оператор break

1.4.7. Оператор for

1.4.8. Оператор while

1.4.9. Оператор do while

1.4.10. Оператор continue

1.4.11. Оператор return

1.4.12. Оператор goto

1.5. ФУНКЦИИ

1.5.1. Определение и вызов функций

1.5.2. Вызов функции с переменным числом параметров

1.5.3. Передача параметров функции main

1.6. СТРУКТУРА ПРОГРАММЫ И КЛАССЫ ПАМЯТИ

1.6.1. Исходные файлы и объявление переменных

1.6.2. Объявления функций

1.6.3. Время жизни и область видимости программных объектов

1.6.4. Инициализация глобальных и локальных переменных

1.7. УКАЗАТЕЛИ И АДРЕСНАЯ АРИФМЕТИКА

1.7.1. Методы доступа к элементам массивов

1.7.2. Указатели на многомерные массивы

1.7.3. Операции с указателями

1.7.4. Массивы указателей

1.7.5. Динамическое размещение массивов

1.8. ДИРЕКТИВЫ ПРЕПРОЦЕССОРА

1.8.1. Директива #include

1.8.2. Директива #define

1.8.3. Директива #undef

2. ОРГАНИЗАЦИЯ СПИСКОВ И ИХ ОБРАБОТКА

2.1. ЛИНЕЙНЫЕ СПИСКИ

2.1.1. Методы организации и хранения линейных списков

2.1.2. Операции со списками при последовательном хранении

2.1.3. Операции со списками при связном хранении

2.1.4. Организация двусвязных списков

2.1.5. Стеки и очереди

2.1.6. Сжатое и индексное хранение линейных списков

2.2. СОРТИРОВКА И СЛИЯНИЕ СПИСКОВ

2.2.1. Пузырьковая сортировка

2.2.2. Сортировка вставкой

2.2.3. Сортировка посредством выбора

2.2.4. Слияние списков

2.2.5. Сортировка списков путем слияния

2.2.6. Быстрая и распределяющая сортировки

2.3. ПОИСК И ВЫБОР В ЛИНЕЙНЫХ СПИСКАХ

2.3.1. Последовательный поиск

2.3.2. Бинарный поиск

2.3.3. М-блочный поиск

2.3.4. Методы вычисления адреса

2.3.5. Выбор в линейных списках

2.4. РЕКУРСИЯ

Чтение по порядку глав

Вообще сайт СитФорум по программированию ПК рулит!


Оглавление

Предисловие

Предисловие к первому изданию

Введение

Список ошибок, допущенных в книгеhr

Глава 1. Обзор языка

1.1 Начнем, пожалуй

1.2 Переменные и арифметические выражения

1.3 Инструкция for

1.4 Именованные константы

1.5 Ввод-вывод символов

1.5.1 Копирование файла

1.5.2 Подсчет символов

1.5.3 Подсчет строк

1.5.4 Подсчет слов

1.6 Массивы

1.7 Функции

1.8 Аргументы. Вызов по значению

1.9 Символьные массивы

1.10 Внешние переменные и область видимости

Глава 2. Типы, операторы и выражения

2.1 Имена переменных

2.2 Типы и размеры данных

2.3 Константы

2.4 Объявления

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

2.6 Операторы отношения и логические операторы

2.7 Преобразования типов

2.8 Операторы инкремента и декремента

2.9 Побитовые операторы

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

2.11 Условные выражения

2.12 Приоритет и очередность вычислений

Глава 3. Управление

3.1 Инструкции и блоки

3.2 Конструкция if-else

3.3 Конструкцияn else-if

3.4 Переключатель switch

3.5 Циклы while и

3.6 Цикл do-while

3.7 Инструкции break и continue

3.8 Инструкция goto и метки

Глава 4. Функции и структура программы

4.1 Основные сведения о функциях

4.2 Функции, возвращающие нецелые значения

4.3 Внешние переменные

4.4 Области видимости

4.5 Заголовочные файлы

4.6 Статические переменные

4.7 Регистровые переменные

4.8 Блочная структура

4.9 Инициализация

4.10 Рекурсия

4.11 Препроцессор языка Си

4.11.1 Включение файла

4.11.2 Макроподстановка

4.11.3 Условная компиляция

Глава 5. Указатели и массивы

5.1 Указатели и адреса

5.2 Указатели и аргументы функций

5.3 Указатели и массивы

5.4 Адресная арифметика

5.5 Символьные указатели функции

5.6 Массивы указателей, указатели на указатели

5.7 Многомерные массивы

5.8 Инициализация массивов указателей

5.9 Указатели против многомерных массивов

5.10 Аргументы командной строки

5.11 Указатели на функции

5.12 Сложные объявления

Глава 6. Структуры

6.1 Основные сведения о структурах

6.2 Структуры и функции

6.3 Массивы структур

6.4 Указатели на структуры

6.5 Структуры со ссылками на себя

6.6 Просмотр таблиц

6.7 Средство typedef

6.8 Объединения

6.9 Битовые поля

Глава 7. Ввод и вывод

7.1 Стандартный ввод-вывод

7.2 Форматный вывод (printf)

7.3 Списки аргументов переменной длины

7.4 Форматный ввод (scanf)

7.5 Доступ к файлам

7.6 Управление ошибками (stderr и exit)

7.7 Ввод-вывод строк

7.8 Другие библиотечные функции

7.8.1 Операции со строками

7.8.2 Анализ класса символов и преобразование символов

7.8.3 Функция ungetc

7.8.4 Исполнение команд операционной системы

7.8.5 Управление памятью

7.8.6 Математические функции

7.8.7 Генератор случайных чисел

Глава 8. Интерфейс с системой UNIX

8.1 Дескрипторы файлов

8.2 Нижний уровень ввода-вывода (read и write)

8.3 Системные вызовы open, creat, close, unlink

8.4 Произвольный доступ (lseek)

8.5 Пример. Реализация функций fopen и getc

8.6 Пример. Печать каталогов

8.7 Пример. Распределитель памяти

Приложение A. Справочное руководство

A1. Введение

A2. Соглашения о лексике

A2.1. Лексемы (tokens)

A2.2. Комментарий

A2.3. Идентификаторы

A2.4. Ключевые слова

A2.5. Константы

A2.5.1. Целые константы

A2.5.2. Символьные константы

А2.5.3. Константы с плавающей точкой

A2.5.4. Константы-перечисления

A2.6. Строковые литералы

A3. Нотация синтаксиса

A4. Что обозначают идентификаторы

A4.1. Класс памяти

A4.2. Базовые типы

A4.3. Производные типы

A4.4. Квалификаторы типов

A5. Объекты и Lvalues

A6. Преобразования

A6.1. Целочисленное повышение

A6.2. Целочисленные преобразования

A6.3. Целые и числа с плавающей точкой

A6.4. Типы с плавающей точкой

А6.5. Арифметические преобразования

A6.6. Указатели и целые

A6.7. Тип void

А6.8. Указатели на void

A7. Выражения

A7.1. Генерация указателя

A7.2. Первичные выражения

A7.3. Постфиксные выражения

A7.3.1. Обращение к элементам массива

A7.3.2. Вызов функции

A7.3.3. Обращение к структурам

A7.3.4. Постфиксные операторы инкремента и декремента

А7.4. Унарные операторы

А7.4.1. Префиксные операторы инкремента и

A7.4.2. Оператор получения адреса

A7.4.3. Оператор косвенного доступа

A7.4.4. Оператор унарный плюс

A7.4.5. Оператор унарный минус

A7.4.6. Оператор побитового отрицания

A7.4.7. Оператор логического отрицания

A7.4.8. Оператор определения размера sizeof

A7.5. Оператор приведения типа

A7.6. Мультипликативные операторы

A7.7. Аддитивные операторы

A7.8. Операторы сдвига

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

A7.10. Операторы равенства

A7.11. Оператор побитового И

A7.12. Оператор побитового исключающего ИЛИ

A7.13. Оператор побитового ИЛИ

A7.14. Оператор логического И

A7.15. Оператор логического ИЛИ

А7.16. Условный оператор

A7.17. Выражения присваивания

A7.18. Оператор запятая

A7.19. Константные выражения

A8. Объявления

A8.1. Спецификаторы класса памяти

А8.2. Спецификаторы типа

A8.3. Объявления структур и объединений

A8.4. Перечисления

А8.5. Объявители

A8.6. Что означают объявители

A8.6.1. Объявители указателей

А8.6.2. Объявители массивов

А8.6.3. Объявители функций

A8.7. Инициализация

A8.8. Имена типов

А8.9. Объявление

A8.10. Эквивалентность типов

A9. Инструкции

A9.1. Помеченные инструкции

A9.2. Инструкция-выражение

A9.3. Составная инструкция

A9.4. Инструкции выбора

A9.5. Циклические инструкции

A9.6. Инструкции перехода

А10. Внешние объявления

A10.1. Определение функции

A10.2. Внешние объявления

A11. Область видимости и связи

A11.1. Лексическая область видимости

A11.2. Связи

A12. Препроцессирование

A12.1. Трехзнаковые последовательности

A12.2. Склеивание строк

А12.3. Макроопределение и макрорасширение

A12.4. Включение файла

A12.5. Условная компиляция

A12.6. Нумерация строк

A12.7. Генерация сообщения об ошибке

A12.8. Прагма

A12.9. Пустая директива

A12.10. Заранее определенные имена

A13. Грамматика

Приложение B. Стандартная библиотека

B1. Ввод-вывод: stdio.

B1.1. Операции над файлами

B1.2. Форматный вывод

B1.3. Форматный ввод

B1.4. Функции ввода-вывода символов

B1.5. Функции прямого ввода-вывода

B1.6. Функции позиционирования файла

B1.7. Функции обработки ошибок

B2. Проверки класса символа: ctype.

B3. Функции, оперирующие со строками: string.

B4. Математические функции: math.

B5. Функции общего назначения: stdlib.

B6. Диагностика: assert.

B7. Списки аргументов переменной длины: stdarg.

B8. Дальние переходы: setjmp.

B9. Сигналы: signal.

B10. Функции даты и времени: time.

B11. Зависящие от реализации пределы: limits.и float.

Приложение С. Перечень измененийhr

Предметный указатель - язык Си

--Nekolex 20:47, 27 сентября 2009 (UTC)