C: Почему мы включаем заголовочные файлы, которые объявляют, но не определяют?

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

Может быть, мне нужно больше узнать о процессе компиляции / компоновки, чтобы полностью понять механику, но есть ли концепция высокого уровня, которую я с самого начала не смог понять?

редактироватьВсе ответы помогли прояснить мой вопрос, который сводится к следующему: как только мы уведомим компилятор о том, что функция определена в другом месте, как он выясняет, где найти это определение?

Ответы на вопрос(5)

Ваш ответ на вопрос