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!