polevoi_cpp_2013_spring_lecture_05
.pdfСтруктурное и процедурное программирование
(с использованием 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 |