Why C requires forward declarations

Some languages were developed during a time period where memory was extremely scarce. The compiler was designed around this limitation

Pascal’s grammar requires type declarations to appear first in a block.

In C you can’t call a function above the code that defines it unless you have an explicit forward declaration that tells the compiler what it needs to know to generate code for a call to the later function.