At the moment of your function call, your compiler don't know anything about this function. There is two ways to make the compile aware of your function: declaration and definition.
To declare the function you have to put the function synopsis (function arguments and return values) to the top of the compilation module like this.
void settings(void);
To fix your problem you should have the settings()
function declared before the first call of it.
In your case you should probably declare the function at the top of the file. By this way compiler will be aware about the function and the arguments that should be passed into.
void settings();
void controls()
{
...
}
void settings()
{
...
}
void mainMenu()
{
...
}
Good article to start from and to get some additional details: Declaration and definition at msdn