Organização de arquivos C
Estou acostumado a fazer toda a minha codificação em um arquivo C. No entanto, estou trabalhando em um projeto grande o suficiente para que seja impraticável fazê-lo. Estive #incluindo-os juntos, mas encontrei alguns casos em que estou #incluindo alguns arquivos várias vezes etc. Ouvi falar de arquivos .h, mas não sei ao certo qual é a função deles (ou por que ter 2 arquivos é melhor que 1).
Quais estratégias devo usar para organizar meu código? É possível separar funções "públicas" das funções "privadas" para um arquivo específico?
este A pergunta precipitou minha pergunta. O arquivo tea.h não faz referência ao arquivo tea.c. O compilador "sabe" que todo arquivo .h tem um arquivo .c correspondente?