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

polevoi_cpp_2013_spring_lecture_05

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

Структурное и процедурное программирование

(с использованием C++)

Полевой Дмитрий Валерьевич к.т.н., доцент КиК

e-mail: oop.misis@gmail.com

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

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

компилятор

оптимизатор

компоновщик

30.03.2013

2

Раздельная компиляция

компилятор (compiler)

компиляция независимых компонент

генерация объектного кода

компоновщик (linker)

связывание объектного кода

генерация исполняемого кода

преодоление ограничений компилятора

повторное использование

30.03.2013

3

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

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

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

30.03.2013

4

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

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

#include

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

#define, #undef

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

#ifndef, #else, #endif

• #, ##

30.03.2013

5

#include

• вставка в исходный текст включаемого

пример:

#include <cstdio>

пример:

#include “matrix.inl”

30.03.2013

6

#define

• макрос

пример:

#define GOGO

• макрос-подстановка, макроопределение

пример:

#define MAX_PATH 256

#define min(l,r) ((l < r)? l : r)

30.03.2013

7

#undef

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

пример:

#if __cplusplus

#undef NULL

#endif

30.03.2013

8

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

#if

#ifdef

#ifndef

#if defined

#else

#endif

30.03.2013

9

Условная компиляция (пример)

пример:

#ifdef _MSC_VER

_getcwd(buf, bsize);

#else

getcwd(buf, bsize);

#endif

30.03.2013

10