Зачем включать заголовок в файл определения метода?


Предположим, у вас есть исходный файл с именем sum.c это выглядит так:

#include "sum.h"

int sum(int x, int y) {
    return x+y;
}

Какой смысл включать заголовок метода в его собственный файл определения? Разве вы не должны включать его только в исходные файлы, которые вызывают функциюsum ?

6 4

6 ответов:

Таким образом, вы избежите возможных проблем, если определения в заголовке и в исходных файлах отличаются.

Если вы не включаете файл заголовка, вы не сможете использовать метод sum в других методах, которые объявлены перед в том же файле.

Это хорошая практика, чтобы сделать это в C просто потому, что приличный компилятор должен выделить различия между прототипом функции и реализацией. Не говоря уже о том, что в более сложных примерах вы можете также объявить, скажем, структуру или подобный файл заголовка, который необходим вашей функции. Вы не хотите дублировать это, поэтому вы включаете файл заголовка.

Это зависит от того, что вы определяете в заголовочном файле. Если, например,у вас есть некоторые определения типов или макросов, которые должны быть доступны как по сумме.c функциями и внешними файлами, то вам нужно включать его везде.

Вы также можете иметь два заголовочных файла на исходный файл. Частная, включенная только суммой.c. это будет содержать вещи, необходимые только для sum.функции c и их назначение-повысить читаемость кода.

Второй" открытый " заголовочный файл будет содержать вещи, необходимые абонентам суммы.функции c. Вам не нужно включать это в общую сумму.C файл.

Заголовок может определять некоторые типы или макросы, которые полезны для реализации. Лучше получить их из заголовка, чем дублировать их.

Исходный файл " sum.c " имеет определение для суммы функций(); объявление функции "sum ()" включается в заголовочный файл " sum.ч".Это помогает поддерживать читабельность.