Допустим, вы пишете библиотеку, которая состоит из нескольких файлов .c
и .h
. Клиенты вашей библиотеки должны будут использовать некоторые заголовочные файлы, чтобы использовать вашу библиотеку. Они должны видеть только публичные функции.
Но для реализации вашей библиотеки вы также можете использовать заголовочные файлы, чтобы функции в вашей библиотеке могли вызывать другие (внутренние) функции.
Таким образом, вы получите два типа объявлений:
Для клиентов вашей библиотеки
void public_func();
Для внутреннего использования
static void private_func();
Предпочтительно, частные и публичные объявления находятся в отдельных заголовочных файлах, и клиенты вашей библиотеки должны включать только заголовочные файлы с открытыми функциями.