#include "functions.h" void functionB() {} // declared & defined void functionC(); // declared void functionD(); // declared int main() { // functionA(); // compiler error, because functionA is declared & defined after it is called functionB(); // no error // functionC(); // linker error, because functionC is declared but not defined functionD(); // no error functionE(); // no error return 0; } void functionA() {} // declared & defined void functionD() {} // defined // void functionE() {} // linker error, because functionE is defined multiple times