Если это БОЛЬШОЙ проект, вы почти наверняка должны иметь несколько заголовочных файлов, чтобы сделать что-нибудь разумное из вашего проекта.
Я работал над проектами с несколькими тысячами исходных файлов и многими сто файлами заголовков, всего миллионы строк. Вы не могли собрать все эти заголовочные файлы в один файл и выполнить любую значимую работу.
В заголовочном файле должна содержаться одна «функциональность». Итак, если у вас есть программа, касающаяся счетов клиентов, акций, счетов и т. Д., У вас может быть один «customer.h», «stock.h» и «invoice.h». Вероятно, у вас также будет «dateutils.h» для расчета «когда этот счет-фактура должен быть оплачен и сколько времени прошло с момента отправки счета-фактуры для отправки напоминаний.
В целом, 0:
Конечно, если функция не используется за пределами определенного файла, она не должна входить в заголовочный файл и избежать «утечки имен», он должен быть static
Например:.
static void func(int x)
{
return x * 2;
}
Если по какой-то причине, вы должны направить объявить func
(потому что некоторая функция перед func
должна вызвать func
), а затем объявить ее в начале исходного файла. Нет необходимости «распространять его», добавив его в файл заголовка.
Отметив это static
, вы ясно даете понять, что «никто, кроме этого файла, не использует эту функцию». Если на более позднем этапе вы обнаружите, что «Hmm, этот func
действительно полезен и в модуле B», затем добавьте его в подходящий файл заголовка (или создайте новый файл заголовка) и удалите static
. Теперь любой, кто читает исходный файл, знает, что им нужно будет проверить вне этого исходного файла, чтобы все изменения в func
были в порядке в остальной части кода.