3
respostas

Header files vs Protótipos

Até esse curso, eu deixava apenas os protótipos de cada função que escrevia logo abaixo dos outros arquivos .h e das definições. Gostei bastante de saber como criar exatamente um arquivo .h, mas fiquei com uma dúvida:

Qual a diferença entre eu colocar o protótipo das minhas funções no começo do código ou então criar um header file para elas, se é que existe alguma diferença? Quais as vantagens e desvantagens de cada uma?

3 respostas

Olá Lucas,

Uma das razões de utilizarmos os heade files é justamente separar as definições das funções de suas implementações. Isso ajudar a organizar melhor o código e também ajuda quando você precisar usar uma biblioteca, por exemplo. Se você tiver acesso aos header files, você consegue ter uma ideia do que você pode fazer com aquela lib, desde que ela tenha um mínimo de comentários.

A outra razão está mais ligada ao processo de compilação. Quando um arquivo C referencia uma função que está em outro arquivo, o compilador precisa ter uma referência de quais funções existem naquele outro arquivo. Nesse caso, só precisamos ter o header file desse outro arquivo pro compilador saber quais funções existem e quais não existem.

Mas quando eu crio as funções no mesmo arquivo, o que compensa mais? Criar um arquivo .h com os protótipos das funções e incluir esse arquivo no meu código ou então só colocar os protótipos lá mesmo?

Porque as vantagens que você citou são mais para quando eu estou usando funções criadas por outras pessoas, certo?

Muito obrigado desde já

Oi Lucas,

Se você pretende usar as funções somente dentro do próprio arquivo realmente não tem diferença em relação a usar os headers. A gente acaba fazendo sempre os headers por questão de boas práticas de organização do código e separação de responsabilidades mesmo.