The compiler compiles the source code from top to bottom, so if you have a source file like :
Code:
test_function();
void test_function(void)
{ //do stuff
}
it is best to prototype "test_function" before you call it. This lets the compiler know that there is a definition of the function. Some compilers might not compile the source code without the prototypes, others might throw a "implicit reference" warning.