У меня есть исходный файл source.c и общедоступный заголовочный файл source.h. Source.c содержат sНесколько файлов заголовков в один исходный файл?
#include "source.h"
Я не хочу, чтобы все функции в source.c быть публичным, поэтому я хочу еще один заголовочный файл под названием priv_source.h, который ссылается на некоторые частные функции в source.c.
Компилятор понимает, что priv_source.h также является файлом заголовка source.c или мне нужно сделать еще один c-файл с именем priv_source.c?
Почему вы включаете 'source.c' в' source.h'? –
Это было неправильно, это должно быть так, как я отредактировал сейчас ... – theva
Обычно файл 'source.h' не содержит деклараций для каждой функции, определенной в' source.c', только те функции, которые должны быть разделены с другими исходными файлами (единицы перевода). Для любой функции из 'source.c', которую вы не хотите экспортировать из' source.c', не объявляйте ее в 'source.h'. Если функции требуется декларация (потому что она используется до ее определения), просто объявите ее в соответствующем месте в 'source.c'. Кроме того, функции, предназначенные для того, чтобы быть закрытыми для 'source.c', обычно объявлялись бы с помощью' static'. –