Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

main() function in C

Tags:

c

main

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.

  1. 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?

  2. Why do we have to use int main() instead of void main()?

  3. 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?

like image 890
Heikki Avatar asked Aug 26 '13 14:08

Heikki


People also ask

What is main () function?

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.

What is called main () in C?

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.

Why is main () important?

The main() function is required so that the startup code knows where execution of your code should start.

Is main function mandatory in C?

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.


1 Answers

  1. A declaration of a function is needed only before a function is used. The definition is itself a declaration, so no prior prototype is required. (Some compilers and other tools may warn if a function is defined without a prior prototype. This is intended as a helpful guideline, not a rule of the C language.)
  2. Because the C standard says so. Operating systems pass the return value to the calling program (usually the shell). Some compilers will accept void main, but this is a non-standard extension (it usually means "always return zero to the OS").
  3. By convention, a non-zero return value signals that an error occurred. Shell scripts and other programs can use this to find out if your program terminated successfully.
like image 140
Fred Foo Avatar answered Sep 18 '22 01:09

Fred Foo