Por que não foi declarado o "fogefoge.h" quando só tinha as funções ? Nesse caso a ordem das funções já estava bem posicionadas para o compilador fazer sua leitura sem erro?
Por que não foi declarado o "fogefoge.h" quando só tinha as funções ? Nesse caso a ordem das funções já estava bem posicionadas para o compilador fazer sua leitura sem erro?
Oi João! Tudo joia?
A inclusão de arquivos de cabeçalho em C é importante para que o compilador saiba quais são as definições de tipos e declarações de funções que serão usadas no seu código.
Quando você está lidando apenas com funções, muitas vezes é possível declarar as funções antes de usá-las ou, se estão em arquivos separados, incluir o arquivo de cabeçalho onde essas funções estão declaradas. Isso garante que o compilador saiba como essas funções devem ser chamadas.
No caso de structs
, a situação é um pouco diferente. Uma struct
precisa ser definida antes de ser usada, porque o compilador precisa saber o layout da memória para manipular corretamente as variáveis desse tipo. Quando você define uma struct
em um arquivo de cabeçalho, como fogefoge.h
, e quer a usar em outro arquivo, é necessário incluir esse cabeçalho para que o compilador tenha acesso à definição da struct
.
Portanto, quando você começou a usar a struct mapa
, precisou incluir o fogefoge.h
para que o compilador soubesse como a struct
estava definida. Sem essa inclusão, o compilador não teria como saber o que é struct mapa
e quais são seus membros, resultando em erros de compilação.
Espero ter ajudado e bons estudos!