Допустим, у нас есть несколько исходных файлов C, таких как file1.c
, file2.c
и main.c
. У нас есть функции как:
file1.c
|---> file1Func1()
|---> file1Func2()
file2.c
|---> file2Func1()
|---> file2Func2()
и основной файл использует эти функции. Теперь было бы естественно создать и добавить соответствующий прототип функции в файлы заголовков file1.h
и file2.h
, а затем включить эти заголовки в main.c
для использования функций.
Что делать, если у меня есть очень большой проект с более чем тысячей исходных (C) файлов, должен ли я всегда создавать заголовок (а затем добавлять прототип функции) для каждого исходного файла. Затем включите заголовок, чтобы использовать функции?
Или использовать extern для использования функции, определенной в другом месте (в другом исходном файле), и полагаться на компоновщик для поиска и извлечения функции из объектного файла во время компоновки?
Примечание: при использовании последнего подхода MISRA выдает предупреждение об отсутствии прототипа функции.