Заголовочные файлы
Часть раздела Object Oriented Programming путешествия по C на Coddy — урок 1 из 61.
По мере роста программ на C хранение всего кода в одном файле становится затруднительным. Заголовочные файлы позволяют организовать код, отделяя то, что делает функция, от того, как она это делает.
Заголовочный файл (с расширением .h) содержит объявления функций (также называемые прототипами). Эти объявления сообщают компилятору о том, что функция существует и какие параметры она принимает, без предоставления самой реализации.
// math_utils.h
int add(int a, int b);
Чтобы использовать объявления из заголовочного файла, вы подключаете его с помощью директивы #include. Для собственных заголовочных файлов используйте двойные кавычки вместо угловых скобок:
// main.c
#include "math_utils.h"
int add(int a, int b) {
return a + b;
}
int main() {
int result = add(5, 3);
return 0;
}
Ключевое отличие: #include <stdio.h> ищет в системных директориях, в то время как #include "math_utils.h" сначала ищет в папке вашего проекта. Такое разделение позволяет нескольким файлам использовать одни и те же объявления функций, что делает вашу кодовую базу более удобной для навигации и поддержки.
Шпаргалка
Заголовочные файлы (с расширением .h) содержат объявления функций, которые сообщают компилятору о существовании функции без предоставления её реализации:
// math_utils.h
int add(int a, int b);
Подключайте собственные заголовочные файлы, используя двойные кавычки:
// main.c
#include "math_utils.h"
int add(int a, int b) {
return a + b;
}
#include <stdio.h> ищет в системных директориях, в то время как #include "math_utils.h" сначала ищет в папке вашего проекта.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Object Oriented Programming
1Основы модульного программирования
Заголовочные файлыСтражи включенияИсходные файлыСтатические функцииПовторение: Модульный калькулятор4Инкапсуляция
Концепция непрозрачных указателейОпределение непрозрачных структурГеттеры и сеттерыВалидация в сеттерахИтоги: Секретный ящик2Объекты и методы
Структуры как объектыУказатель 'Self'Константная корректностьУказатель против значенияВспомогательные методыИтоги: Point Manager5Проект: Простой банковский счет
Настройка проектаРеализация счета3Жизненный цикл объекта
Паттерн «Конструктор»Паттерн «Деструктор»Инициализация в стекеГлубокое копированиеПовторение: String Wrapper6Наследование через композицию
Встраивание структурПравило первого элементаДоступ к элементам родителяUpcastingПовторение: Иерархия фигур9Проект: Рисование фигур
Обзор проектаРеализация круга