Перевод документации по реализации языка C от Microsoft- для MS-DOS
Author(s): Microsoft (перевод ИНЭУМ)
Publisher: Эврика
Year: 1990
Language: Russian
Pages: 232
City: Moscow
Tags: MS-DOS, Programming
Аннотация ......Page 7
Глава 1. Назначение и условия применения программы ......Page 9
2.1.1 Выполняемые файлы ......Page 11
2.1.2 Включаемые файлы ......Page 12
2.1.4 Другие файлы ......Page 13
2.1.5 Среда компилятора ......Page 14
2.1.6 Переменные среды ......Page 15
2.1.6.3 Переменная INCLUDE ......Page 16
2.1.6.5 Переменная CL ......Page 17
2.1.7 Файл CONFIG.SYS ......Page 18
2.2 Использование RAM-диска ......Page 19
2.3.3 Использование обобщающих символов ......Page 20
2.3.6 Подготовка к использованию символьного отладчика CodeView ......Page 21
2.3.7 Установка заголовков и подзаголовков ......Page 22
3.1 Общие сведения ......Page 23
3.2.1.1 Спецификация исходных и объектных файлов ......Page 24
3.2.1.2 Создание выполняемых файлов ......Page 26
3.2.2 Использование переменной среды CL ......Page 27
3.3 Использование опций команды CL ......Page 28
3.3.1 Опции модели памяти (/A) и опции плавающей точки (/FP) ......Page 29
3.3.2 Листинг опций компилятора (/HELP) ......Page 31
3.3.4 Компиляция без компоновки (/c) ......Page 32
3.3.5 Компиляция с (/qc, /Zr, /Zq) ......Page 33
3.3.6 Наименование объектного файла (/Fo) ......Page 34
3.3.7 Наименование выполняемого файла (/Fe) ......Page 35
3.3.8 Управление листингами ......Page 36
3.3.8.1 Типы листингов (/Fs, /F1, /Fa, /Fc, /Fm) ......Page 37
3.3.8.2 Специальные имена файлов ......Page 40
3.3.8.3 Установка ширины строки (/S1) и длины страницы (/Sp) ......Page 41
3.3.8.5.1 Листинг исходной программы ......Page 42
3.3.8.5.2 Листинг объектного кода ......Page 48
3.3.8.5.4 Комбинированный листинг исходной программы и объектного кода ......Page 49
3.3.8.5.5 Мар-листинги ......Page 50
3.3.9.1 Определение констант и макросов (/D) ......Page 52
3.3.9.2 Предварительно определенные идентификаторы ......Page 54
3.3.9.3 Отмена предварительно определенных идентификаторов (/U, /u) ......Page 55
3.3.9.4 Создание препроцессорных листингов ......Page 56
3.3.9.6 Поиск включаемых файлов (/I, /X) ......Page 57
3.3.10 Использование процессора 80186/80188 или 80286 (/G0, /G1, /G2) ......Page 58
3.3.11.1 Общие сведения о сообщениях и предупреждениях об ошибках ......Page 59
3.3.11.2 Установка уровня предупреждения (/W, /w) ......Page 61
3.3.11.4 Генерация объявлений функций (/Zg) ......Page 62
3.3.12 Подготовка к отладке (/Zi, /Zd, /Od) ......Page 64
3.3.13.1 Управление оптимизацией (/О) ......Page 65
3.3.13.1.1 Ослабление проверки альтернативного имени (/Oa) ......Page 66
3.3.13.1.3 Генерация встроенных функций (/Oi) ......Page 69
3.3.13.1.4 Оптимизация цикла (/O1) ......Page 70
3.3.13.1.7 Выполнение максимальной оптимизации (/Ox) ......Page 72
3.3.13.2 Исключение проверки стека (/Gs) ......Page 73
3.3.14 Разрешение и запрещение расширений языка (/Ze, /Za) ......Page 75
3.3.15 Упаковка элементов структуры (/Zp) ......Page 77
3.3.16 Установка размера стека (/F) ......Page 78
3.3.18 Маркировка объектного файла (/V) ......Page 79
3.3.19 Подавление выбора библиотеки по умолчанию (/Z1) ......Page 80
3.3.21 Управление размещением стека и областью динамической памяти ......Page 81
3.3.22 Управление соглашением об организации вызова функций ......Page 82
3.4 Управление текстовым и двоичным режимами ......Page 85
4.2 Процесс компоновки по умолчанию ......Page 86
4.3.1 Задание имен библиотек ......Page 87
4.3.1.3 Подавление использования имен библиотек из объектных файлов ......Page 88
4.3.2.1 Определение опций компоновщика в командной строке ......Page 90
4.4 Опции компоновщика ......Page 91
5.1 Общие сведения ......Page 96
5.2 Передача программе данных из командной строки ......Page 97
5.2.1 Расширение аргументов обобщающими символами ......Page 99
5.2.2 Подавление операций обработки командной строки ......Page 100
5.3 Возврат и код возврата ......Page 101
5.4 Подавление проверки указателя на равенство нулю ......Page 102
6.1 Общие сведения ......Page 103
6.2 Адресация с помощью near, far и huge ......Page 104
6.3 Использование стандартных моделей памяти ......Page 105
6.3.2 Создание программ модели medium ......Page 106
6.3.3 Создание программ модели compact ......Page 107
6.3.5 Создание программ модели huge ......Page 108
6.4 Использование ключевых слов near, far и huge ......Page 109
6.4.2 Объявление данных с ключевыми словами near, far и huge ......Page 111
6.4.3 Объявление функций с ключевыми словами near и far ......Page 114
6.4.4 Преобразование указателя ......Page 115
6.5 Создание моделей памяти, соответствующих требованиям пользователя ......Page 117
6.5.1 Указатели кода ......Page 118
6.5.3 Установка сегментов ......Page 119
6.5.4 Библиотечная поддержка собственных моделей памяти ......Page 121
6.6 Установка граничной величины для данных ......Page 122
6.7 Наименование модулей и сегментов ......Page 123
6.8 Специфицирование сегментов данных и кодовых сегментов ......Page 124
7.2 Виды пакетов математических программ ......Page 126
7.2.3 Альтернативный математический пакет ......Page 127
7.3 Выбор опций для операций с плавающей точкой (/FP) ......Page 128
7.3.1 Опции /FPi ......Page 131
7.3.4 Опция /FPc87 ......Page 132
7.4.1 Машинные команды или вызовы функций ......Page 133
7.4.2 Использование для компоновки одной стандартной библиотеки ......Page 134
7.5 Совместимость между опциями плавающей точки ......Page 137
7.6 Использование переменной среды NO87 ......Page 138
8.2 Использование регистровых переменных ......Page 139
8.3.2 Генерация встроенных функций ......Page 141
8.3.4 Выполнение оптимизаций цикла ......Page 142
8.4 Выбор соглашений о вызове функций ......Page 143
8.5.1 Изменение адресации с использованием ключевых слов near, far, huge ......Page 144
8.6 Эффективность моделей с большим объемом кода ......Page 145
9.2 Запись процедур на языке Макроассемблер ......Page 147
9.2.2 Вход в процедуру ......Page 148
9.2.4 Сохранение значений регистров ......Page 149
9.2.5 Определение параметров ......Page 150
9.2.6 Возврат значения (необязательный) ......Page 151
9.2.7 Выход из процедуры ......Page 152
9.3 Вызовы из программ на языке Си ......Page 153
9.4 Вызов программ на языках высокого уровня из Макроассемблера ......Page 154
9.5 Сегменты разных моделей памяти ......Page 155
10.2 Мобильность программ ......Page 159
10.3.2 Длина слова ......Page 160
10.3.3 Выравнивание данных в памяти ......Page 161
10.3.4 Порядок байтов в слове ......Page 162
10.3.6 Указатели ......Page 163
10.4.1 Signed/Unsigned char и расширение знаком ......Page 165
10.4.4 Регистровые переменные ......Page 166
10.4.6 Побочный эффект и порядок вычисления ......Page 167
10.6 Мобильность данных ......Page 168
10.7 Размер типов данных ......Page 169
10.8 Порядок байтов ......Page 170
1.1 Сообщения о фатальных ошибках в командной строке ......Page 172
1.2 Сообщения об ошибках в командной строке ......Page 173
1.3 Предупредительные сообщения об ошибках в командной строке ......Page 176
2.1 Сообщения о фатальных ошибках ......Page 179
2.2 Сообщения компилятора об ошибках ......Page 185
2.3 Предупреждающие сообщения ......Page 204
2.4 Ограничения компилятора ......Page 215
3.1.1 Сообщения об ошибках, выдаваемые функциями библиотеки времени выполнения ......Page 217
3.2 Общие ситуации с плавающей точкой ......Page 220
Литература ......Page 224