Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции программирование / polevoy_cpp_2012_spring_lecture_05

.pdf
Скачиваний:
24
Добавлен:
20.04.2015
Размер:
128.48 Кб
Скачать

Этапы сборки программы

препроцессор

компилятор

оптимизатор

компоновщик

10.03.2010

cppNewb.ru

11

Препроцессор

• директивы включения

#include

• макроопределения

#define, #undef

• директивы условной компиляции

#ifndef, #else, #endif

• #, ##

10.03.2010

cppNewb.ru

12

Единица компиляции

исходный файл → препроцессор → единица трансляции

компилируется в собственный объектный файл

10.03.2010

cppNewb.ru

13

Использование библиотеки

включить заголовок

использовать

объявления

переменные

функции

скомпоновать библиотеку

10.03.2010

cppNewb.ru

14

Реализация модульности в С++

функция – единица логики исполнения

модуль (.cpp) – единица организации исходного кода

общие объявления выносятся в

заголовок

10.03.2010

cppNewb.ru

15

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

• стандартные

#include <стандартная_библиотека>

• пользовательские

#include “включаемая_компонента”

10.03.2010

cppNewb.ru

16

Стандартная библиотека

новые имена для библиотек Си

<stdio.h> → <cstdio>

новые имена для библиотек С++

<iostream.h> → <iostream>

не все библиотеки стандартные

<conio.h>

10.03.2010

cppNewb.ru

17

Порядок поиска

определяется реализацией

может быть причиной “сложных” ошибок

переменные окружения

опции компилятора

текущая папка

10.03.2010

cppNewb.ru

18

Стражи включения

предотвращение повторного определения

пример:

// In file defs.h

#ifndef DEFS_H_20080910 #define DEFS_H_20080910

.

.

.

#endif // DEFS_H_20080910

10.03.2010

cppNewb.ru

19

.h может содержать

директивы включения, макроопределения и директивы условной компиляции

именованные пространства имен

объявления имен типов, функций и

данных

определения типов

определения встроенных функций

объявления и определения шаблонов

определения констант

перечисления

10.03.2010

cppNewb.ru

20