
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 |