
- •1.1. _Классика. Общие сведения
- •1.1.3. Элементарные функции ввода-вывода
- •1.2. Функции
- •Void surface(int dl, int VI, int shi);
- •1.3.1. Задание значений аргумента функций по умолчанию
- •1.3.2. Перезагружаемые функции (function overloading)
- •1.3.4. Допускается использование функции с различным количеством аргументов.
- •1.3.6. Дружественные функции (friend)
- •1.3.8. Шаблоны.
- •1.3.9. Виртуальные (virtual) функции
- •1.3.10. Абстрактные классы
- •1.4. Указатели (ссылки). Массивы.
- •Int fprintf ([указатель-На-Входной-Поток], Управляющая-строка, [,Имя-переменной-1, [Имя-переменной-2…]]);
- •Int cprintf (УправляющаяСтрока[,Имя-переменной-1, [Имя-переменной-2…]]);
- •1.6.1 Директива Include
- •1.6.2 Директивы #define и #undef
- •1.6.3 Условные Директивы
- •1.8..Проект (создание проекта классическими средствами языка с)
- •1 .8.1. Классы памяти
- •1.8.3. Проект
- •Раздел 2. Классы
- •31.10.11 Кр Связан с созданием классов и про ооп
- •Лекция 8 от 17.10.2011
- •7.2.2. Динамически присоединенные библиотеки
1.6.1 Директива Include
Она служит для включения копий указанного файла либо в то место, где она находится, либо в те места, на которые делается ссылка на программные объекты (функции, константы, переменные и т.д.), либо в то место, из которых вызывается вызов этих объектов.
#include <ИмяФайла>
#include “Имя-Файла”
#include Идентификатор-Макроса
Третья директива предполагает, что макрос, идентификатор которого указан, ранее предварительно был определен.
#include <vсl.h>
#include “Uniti.h”
Файл vcl.h содержит все объявления, которые используются в библиотеке визуальных компонент С-Билдера.
Компонента Uniti.h содержит описание всех визуальных и не визуальных компонент, которые включены в i-ую форму.
Example “Проект C++Builder”
1.6.2 Директивы #define и #undef
#define |
Идентификатор-Константы |
Замещающий-Текст |
#define |
PI |
3.14159 |
#define |
F1 |
0 x 70 (код в 16-ой системе) |
#define |
F2 |
0 x 71 |
#define |
VK_F3 |
0 x 72 |
#define |
VK_RETURN |
0 x 0D |
#define |
VK_LEFT |
0 x 25 |
#define |
AnyKey |
«Нажмите любую клавишу» |
Обе директивы служат для создания символьных констант или макросов (без параметров).
Макрос представляет собой прикладную операцию, записанную символьными строками.
Формат: #define Имя-Константы Замещающий-Текст
#include <iostream.h>
#include <conio.h>
void main(void)
{
while (!kbhit()); ;
cout << "\n" << getch() ;
}
При подстановке текста с помощью директивы #define этот текст повторно обрабатывается препроцессором в поиске новых замен, чтобы разрешить вложенные определения. Т.о. решается вложенные определения символьных констант.
Формат определения макроса следующий:
#define Идентификатор-Мкроса(Агрументы) Замещающий-Текст
Вызов макроса: Имя-Макроса(Аргументы)
#define CIRC(x) (3.14159*(x)*(x))
S=CIRC(2); => S=(3.14159*(2)*(2));
S=CIRC(a+b); => S=(3.14159*(a+b)*(a+b));
S=(3.14159*a+(b*a)+b);
Аргументы макросов желательно брать в круглые скобки, чтобы избежать ошибок.
При работе с агрументами следует избегать одноместных операторов.
S=CIRC(a++); => S=(3.14159*(a++)*(a++));
/ - перенос макроса
Директива #undef онулирует определение символьных констант и макросов, которые были сделаны ранее.
Формат #undef Имя-Макроса Дествие?
1.6.3 Условные Директивы
#ifdef
#ifndef
#
if
#endif
#else
#elif
(Пример: файл stdio.h, Lab02h.cpp)
Набор условных директив позволяет программисту управлять ходом компиляции С-программы и ходом выполнения директив препроцессора.
Условные директивы препроцессору:
Позволяет исключить повторные включения заголовочных файлов, программных модулей в одном проекте и тем самым избежать массового конфликта имен.
#
ifndef
_PARMSAWP.H
#define _PARMSAWP.H
#define SWAP (T) inlide void SWAP (T & a, T & b) {T t=a; a=b; b=t}
#endif
Результат:
Inline void SWAP (double &a; double &b)
{double t=a; a=b; b=t}
Они используются для включения и исключения отладочных фрагментов текстов программы.
# define DEBUG
…
#ifdef DEBUG
…
Операторы-отладки
#endif
#if (DEBUG)
{
…
}
Пример – текст C-программы в проекте (в файле РассылкаЛаб1).
(Вышлет пример)
Лекция 5 от 03.10.2011
Контрольная работа №1: 5
Вышлет все задачи первой контрольной на эмеил старосте.