what is the difference between function definition and declaration?
In other words a function declaration declares the name of the function and the return type. You must declare an identifier before you can use it. A Function prototype is a declaration of a function that declares the types of the function's parameters and defines them. A Function definition defines the function itself.