Next: , Previous: , Up: A Complete Program   [Contents][Index]


2.2 Complete Program Explanation

Here’s the explanation of the code of the example in the previous section.

This sample program prints a message that shows the value of fib (20), and exits with code 0 (which stands for successful execution).

Every C program is started by running the function named main. Therefore, the example program defines a function named main to provide a way to start it. Whatever that function does is what the program does. See The main Function.

The main function is the first one called when the program runs, but it doesn’t come first in the example code. The order of the function definitions in the source code makes no difference to the program’s meaning.

The initial call to main always passes certain arguments, but main does not have to pay attention to them. To ignore those arguments, define main with void as the parameter list. (void as a function’s parameter list normally means “call with no arguments,” but main is a special case.)

The function main returns 0 because that is the conventional way for main to indicate successful execution. It could instead return a positive integer to indicate failure, and some utility programs have specific conventions for the meaning of certain numeric failure codes. See Returning Values from main.

The simplest way to print text in C is by calling the printf function, so here we explain very briefly what that function does. For a full explanation of printf and the other standard I/O functions, see The GNU C Library in The GNU C Library Reference Manual.

The first argument to printf is a string constant (see String Constants) that is a template for output. The function printf copies most of that string directly as output, including the newline character at the end of the string, which is written as ‘\n’. The output goes to the program’s standard output destination, which in the usual case is the terminal.

%’ in the template introduces a code that substitutes other text into the output. Specifically, ‘%d’ means to take the next argument to printf and substitute it into the text as a decimal number. (The argument for ‘%d’ must be of type int; if it isn’t, printf will malfunction.) So the output is a line that looks like this:

Fibonacci series item 20 is 6765

This program does not contain a definition for printf because it is defined by the C library, which makes it available in all C programs. However, each program does need to declare printf so it will be called correctly. The #include line takes care of that; it includes a header file called stdio.h into the program’s code. That file is provided by the operating system and it contains declarations for the many standard input/output functions in the C library, one of which is printf.

Don’t worry about header files for now; we’ll explain them later in Header Files.

The first argument of printf does not have to be a string constant; it can be any string (see Strings). However, using a constant is the most common case.


Next: Complete Program, Line by Line, Previous: Complete Program Example, Up: A Complete Program   [Contents][Index]