Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Использование директивы препроцессора #includeСодержание книги
Поиск на нашем сайте В языке C откомпилировать исходные файлы и собрать из полученных объектных модулей единый загрузочный модуль можно, не используя этих специальных средств. Для этого в текст одного из исходных модулей включаются с помощью директивы #include тексты всех остальных модулей и полученный единый исходный модуль транслируется и компонуется. Пример.
/* file3.c */ #include "ext.h" #include "file1.c" #include "file2.c" Т Е К С Т
Замечание. Такой прием используется только для небольших программ в 2-3 исходных модуля, т.к. любая модификация требует перетрансляции всей программы. В этом случае исходные тексты удобно располагать в одной директории (папке). В общем случае, такой прием не рекомендуется. Средства управления проектом Эти средства включены в описание сред разработки Borland C++ 3.1 и Visual Basic 6.0 и приведены в Приложениях 1 и 2. Инициализация данных Под инициализацией понимают задание значений объектам программы в момент их определения. В языке Basic все числовые объекты и строки постоянной длины инициализируются нулями, строки произвольной длины – "пустой" строкой (""). Средств инициализации другими значениями не предусмотрено, поэтому речь далее пойдет только о языке C. Любое определение может задать начальное значение определяемого объекта с помощью инициаторов. Инициатор: =<выражение>|{<список_выражений>} Все выражения для static и extern объектов – постоянные, для auto и register – произвольные. Если объект типа static или extern не инициируется, то для числовых типов он получает значение нуль, для символьных массивов "" (пустая строка), для указателей – значение символической константы NULL. Другие объекты получают в отведенной области памяти "мусор" (неопределенные значения). Если объект представляет собой совокупность (структура, массив, объединение), то инициатор имеет вид: {<выражение>[<, выражение>]...}. Выражения – это инициаторы для элементов, записанные в порядке их хранения в памяти. Если совокупность содержит составные подобъекты, то правило рекурсивно распространяется и на них. Если инициаторов меньше, чем элементов, то оставшиеся инициируются по общим правилам, если больше, то регистрируется ошибка. Для инициализации символьных массивов можно использовать литералы типа string. Все объекты инициализируются только в момент выделения памяти, по-этому объекты класса памяти static или extern при изменении начальное значение не восстанавливают, а объекты класса памяти auto или register инициализируются каждый раз при входе в функцию или блок, где они определены. Примеры. 1. Скаляры. #define SIZE 3 static int dlina=SIZE+1; int k=n+1;
2. Массивы. int x[ ]={1,2,3}; // Размерность определяет транслятор по числу инициаторов float y[4][3]={ // Эквивалентная запись float y[4][3]={1,3,5,2,4,6,3,5,7}; {1,3,5 }, // 0-я строка {2,4,6 }, // 1-я строка {3,5,7 } // 2-я строка }; // 3-я строка:0 (для static | extern) | "мусор" (для auto | register) float y[4][3]={ // Заполняет только 1-й столбец {1}, {2}, {3}, {4} }; 3. Символьный массив. char msg[ ]="Синтаксическая ошибка в строке %s\n"; Длина массива определяется числом инициаторов. Конечный 0 включается. 4. Массив указателей. /* Выдать название месяца по номеру */ char* month_name(int n){ static char* name[ ]={ "Hеправильный месяц", "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Hоябрь", "Декабрь" }; return n<1||n>12? name[0]:name[n]; } /* End month_name */ 5. Массив структур. static struct { char * mess; int window[4]; }message[ ]={ {"Имя входного файла", {14,12,35,14}}, {"Имя dbf-файла", {16,12,31,14}}, {"Имя файла программы", {12,12,37,14}} };
|
||
|
Последнее изменение этой страницы: 2017-02-08; просмотров: 438; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.196 (0.005 с.) |