Обратите внимание, что имя файла стандартной библиотеки "iostream.h" в ди-
рективе препроцессора "include" заключено в угловые скобки ("<>"). Файлы с имена-
ми в угловых скобках препроцессор ищет в библиотечных каталогах, указанных в на-
стройках компилятора. Имена пользовательских заголовочных файлов обычно за-
ключаются в двойные кавычки, и препроцессор ищет их в текущем каталоге про-
граммы.
Далее приведено содержимое файла "averages.h". В нем есть идентификатор
препроцессора "AVERAGES_H" и служебные слова препроцессора "ifndef" ("если не оп-
ределено"), "define" ("определить") и "endif" ("конец директивы if"). Идентифика-
тор "AVERAGES_H" является глобальным символическим именем заголовочного файла.
Первые две строки файла служат защитой от повторной обработки текста заголовоч-
ного файла препроцессором, на случай, если в исходном тексте программы строка
"#include "averages.h"" встречается несколько раз.
В заголовочных файлах, кроме прототипов функций, часто размещаются опи-
сания глобальных констант и пользовательских типов. Подробнее об этом говорится в
курсе объектно-ориентированного программирования.
#ifndef AVERAGES_H
# define AVERAGES_H
// (Определения констант и пользовательских типов)
// ПРОТОТИП ФУНКЦИИ ДЛЯ ВЫЧИСЛЕНИЯ ЦЕЛОЧИСЛЕННОГО СРЕДНЕГО
// ЗНАЧЕНИЯ 3-Х ЦЕЛЫХ ЧИСЕЛ:
int average(int first_number, int second_number,
int third_number);
// ПРОТОТИП ФУНКЦИИ ДЛЯ ВЫЧИСЛЕНИЯ ЦЕЛОЧИСЛЕННОГО СРЕДНЕГО
// ЗНАЧЕНИЯ 2-Х ЦЕЛЫХ ЧИСЕЛ:
int average(int first_number, int second_number);
#endif
Заголовочный файл averages.h.
Ниже показано содержимое файла "averages.cpp" с исходным текстом поль-
зовательских функций:
#include <iostream.h>
#include "averages.h"
// ФУНКЦИЯ ДЛЯ ВЫЧИСЛЕНИЯ ЦЕЛОЧИСЛЕННОГО СРЕДНЕГО
// ЗНАЧЕНИЯ 3-Х ЦЕЛЫХ ЧИСЕЛ:
int average(int first_number, int second_number,
int third_number)
{
return ((first_number + second_number + third_number)/3);
}
// ФУНКЦИЯ ДЛЯ ВЫЧИСЛЕНИЯ ЦЕЛОЧИСЛЕННОГО СРЕДНЕГО
// ЗНАЧЕНИЯ 2-Х ЦЕЛЫХ ЧИСЕЛ:
int average(int first_number, int second_number)
{
return ((first_number + second_number)/2);
}