Язык программирования Си для персонального компьютера Бочков С.О. Москва 1990 384стр. Язык программирования Си для персонального компьютера. —М.: Радио и связь, 1990.—384 с. Книга содержит полное описание наиболее распространенных реализаций языка программирования Си на 16-разрядных мик-роЭВМ, совместимых с IBM PC. Приведено описание стандартных библиотек языка. Для слушателей учебных курсов в области программирования, разработчиков программного обеспечения, а также студентов соответствующих специальностей вузов. Может быть использовано как техническая документация и справочное пособие для широкого круга программистов, как профессионалов, имеющих большой опыт работы на языке Си, так и начинающих программировать на Си. ОГЛАВЛЕНИЕ
Стр.
Введение.............................................................................. 7
ЧАСТЬ I. ОПИСАНИЕ ЯЗЫКА СИ ....^................./......... 13
1. Элементы языка Си....................................................... 13
1.1. Алфавит................................................................... 14
1.1.1. Буквы и цифры .....................'........................ 14
1.1.2. Пробельные символы .................................... 15
1.1.3. Разделители.................................................. 15
1.1.4. Специальные символы .................................. 16
1.1.5. Операции....................................................... 18
1.2. Константы.............................................................. 19
1.2.1. Целые константы .......................................... 19
1.2.2. Константы с плавающей точкой................... 21
1.2.3. Символьные константы ................................. 22
1.2.4. Символьные строки....................................... 23
1.3. Идентификаторы.................................................... 25
1.4. Ключевые слова..................................................... 26
1.5. Комментарии .......................................................... 27
2. Структура программы.................................................. 28
2.1. Исходная программа .............................................. 28
2.2. Исходные файлы.................................................... 29
2.3. Выполнение программы......................................... 31
2.4. Время жизни и область действия ...............,.......... 33
2.5. Пространства имен................................................. 37
3. Объявления................................................................... 39
3.1. Базовые типы данных ............................................ 40
3.2. Области значений.....................................;............ 42
3.3. Описатели............................................................... 45
3.3.1. Синтаксис описателей................................... 45
3.3.2. Интерпретация составных описателей ......... 45
3.3.3. Описатели с модификаторами...................... 47
3.4. Объявление переменных ........................................ 54
3.4.1. Объявление простой переменной.................. 55
3.4.2. Объявление переменной перечислимого
типа ............................................................... 56
3.4.3. Объявление структуры................................... 58
3.4.4. Объявление объединения.............................. 62
3.4.5. Объявление массива...................................... 63
3.4.6. Объявление указателя .................................. 65
3.5. Объявление функции (прототип)........................... 67
3.6. Классы памяти....................................................... 70
3.6.1. Объявление переменной на внешнем
уровне............................................................. 71
3.6.2. Объявление переменной на внутреннем
уровне.............................................................. 75
3.7. Инициализация..............................................,...... 77
3.7.1. Базовые типы и указатели............................ 77
3.7.2. Составные типы........................................... 77
3.7.3. Строковые инициализаторы......................... 81
3.8. Объявление типа.................................................... 80
3.8.1. Объявление тега........................................... 82
3.8.2. Объявление typedef...................................... 82
3.8.3. Абстрактные имена типов............................ 83
Выражения.................................................................... 85
4.1. Введение ................................................................ 85
4.2. Операнды............................................................... 85
4.2.1. Идентификаторы .......................................... 86
4.2.2. Константы .................................................... 87
4.2.3. Символьные строки...................................... 87
4.2.4. Вызовы функций .......................................... 87
4.2.5. Индексные выражения................................. 88
4.2.6. Выбор элемента........................................... 90
4.2.7. Операции и L-выражения............................. 91
4.2.8. Скобочные выражения................................. 93
4.2.9. Константные выражения.............................. 93
4.3. Операции ............................................................... 94
4.3.1. Преобразования по умолчанию ................... 95
4.3.2. Унарные операции....................................... 95
4.3.3. Мультипликативные операции .................... 99
4.3.4. Аддитивные операции.................................. 100
4.3.5. Операции сдвига.......................................... 102
4.3.6. Операции отношения................................... 102
4.3.7. Поразрядные операции................................ 104
4.3.8. Логические операции................................... 104
4.3.9. Операция последовательного вычисления ... 105
4.3.10. Условная операция..................................... 106
4.4. Операции присваивания.......*................................ 107
4.4.1. Операции инкремента и декремента ........... 107
4.4.2. Простое присваивание.................................. 108
4.4.3. Составное присваивание .............................. 108
4.5. Приоритет и порядок выполнения........................ 109
4.6. Побочные эффекты........................................•...... 112
4.7. Преобразования типов.......................................... 113
4.7.1. Преобразования типов при присваивании ...
4.7.2. Явные преобразования типов ...................;..
4.7.3. Преобразования типов при вызовах ,,",,. функций .....,.....................•........».»...............' Ц9
Операторы...............................................................,..... 120
5.1. Введение ................................................................ 120
5.2. Пустой оператор.................................................... 121
5.3. Составной оператор................................................ 122
5.4. Оператор-выражение............................................. 122
5.5. Условный оператор if............................................ 123
5.6. Оператор пошагового цикла for............................ 124
5.7. Оператор цикла с предусловием while.................. 125
5.8. Оператор цикла с постусловием do ...................... 126
5.9. Оператор продолжения continue........................... 126
5.10. Оператор-переключатель switch ......................... 127
5.11. Оператор разрыва break...................................... 130
5.12. Оператор перехода goto....................................... 131
5.13. Оператор возврата return .................................... 131
Функции........................................................................ 133
6.1. Введение ................................................................ 133
6.2. Определение функции........................................... 133
6.2.1. Класс памяти................................................ 134
6.2.2. Модификаторы типа функции ..................... 134
6.2.3. Типы возвращаемых значений .................... 134
6.2.4. Формальные параметры............................... 136
6.2.5. Тело функции .............................................. 139
6.3. Объявление функции.............................,.............. 139
6.4. Вызов функции...................................................... 141
6.4.1. Фактические аргументы............................... 143
6.4.2. Вызов функции с переменным числом аргументов .................................................... 145
6.4.3. Рекурсивные вызовы.................................... 145
Директивы препроцессора и указания компилятору.. 146
7.1. Введение.................................................................. 146
7.2. Именованные константы и макроопределения..... 147
7.2.1. Директива #define....................................... 148
7.2.2. Склейка лексем и преобразование аргументов макроопределений...................... 151
7.2.3. Директива #undef ....................................... 152
7.3. Включение файлов................................................ 152
7.4. Условная компиляция ........................................... 154
7.4.1. Директивы #if, #elif, «else, #endif ......... 154
7.4.2. Директивы #ifdef и #ifndef ....................... 157
7.5. Управление нумерацией строк.............................. 158
7.6. Директива обработки ошибок............................... 159
7.7. Пустая директива ................,................................. 160
7.8. Указания компилятору языка Си......................... 160
7.9. Псевдопеременные................................................. 160
& Модели памяти............................................................. 161 !
8.1. Виды моделей ......................................~.«--------... 161 s
8.2. Модификация стандартной модели памяти.......... 165 1
8.2.1. Объявление данных ...-----..............----------- 165 j
8.2.2. Объявление функций ............-----................ 166 \
8.3. Модели памяти СП ТС.........„.............................. 167 ;
ЧАСТЬ П. ОПИСАНИЕ БИБЛИОТЕЧНЫХ ФУНКЦИЙ {
ЯЗЫКА СИ.......................________..................—............. 169 J
9. Краткое описание библиотеки ................~.................. 171 :
9.1. Работа с областями памяти и строками................. 171 г
9.2. Определение класса символов и преобразование символов....................................................... 174
9.3. Форматные преобразования данных „.................... 174
9.4. Работа с каталогами файловой, системы............... 175
9.5. Операции над файлами.......................................... 175
9.6. Ввод и вывод.......................~...............................~. 176
9.6.1. Функции ввода/вывода высокого уровня... 178
9.6.2. Функции ввода/вывода нижнего уровня.... 182
9.6.3. Функции ввода/вывода с консольного терминала и порта.........—....„......-.,............ 184
9.7. Математические функции............„......................... 185 :
9.8. Динамическое распределение памяти.................... 187
9.9. Использование системных вызовов операционной
системы MS-DOS___............................................. 189
9.10. Управление процессами........................................ 191
9.11. Поиск и сортировка..........____............................. 194
9.12. Функции работы со временем.............................. 194
9.13. Функции работы со списком аргументов............. 195
9.14. Другие функции........................,......~..„....«,......... 196
10. Полное описание библиотеки....................................... 196
ПРИЛОЖЕНИЯ:
A. Перечень особенностей реализации языка Си
в различных версиях СП MSC и СП ТС .................... 370
Б. Сообщения об ошибках................................................ 374
B. Перечень библиотечных функций с указанием отличий в реализации..........«...................................... 377
Список литературы...............................—...........„„............ 383
Hosted by uCoz