Я не совсем понимаю, как вещи должны быть разделены в исходных и заголовочных файлах C. Я часто вижу много проектов с двумя наборами файлов с тем же именем (без расширения, обозначающего исходные и заголовочные файлы).
До сих пор, из-за этого непонимания, когда я писал библиотеки, я вложил весь код класса и класса в один файл с нерешительностью в отношении выбора расширения файла.
Что должно быть в заголовках и что должно быть в исходных файлах? Как реализовать это разделение?