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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!