I've been learning C programming in a self-taught fashion for some weeks, and there are some questions that I have concerning the main()
function.
All functions must be declared in their function prototype, and later on, in their defintion. Why don't we have to declare the main()
function in a prototype first?
Why do we have to use int main()
instead of void main()
?
What does return 0 exactly do in the main()
function? What would happen if I wrote a program ending the main()
function with return 1;
, for example?
The main function serves as the starting point for program execution. It usually controls program execution by directing the calls to other functions in the program. A program usually stops executing at the end of main, although it can terminate at other points in the program for a variety of reasons.
In 'C', the "main" function is called by the operating system when the user runs the program and it is treated the same way as every function, it has a return type. Although you can call the main() function within itself and it is called recursion.
The main() function is required so that the startup code knows where execution of your code should start.
No, the ISO C standard states that a main function is only required for a hosted environment (such as one with an underlying OS). For a freestanding environment like an embedded system (or an operating system itself), it's implementation defined.
void main
, but this is a non-standard extension (it usually means "always return zero to the OS").If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With