2.1. What are functions?
Functions are the building blocks of C programs.
The majority of a C program is made up of named blocks of
code called functions. When you write a
program you will write many functions to perform the tasks you need.
There are, however, a lot of common tasks such as displaying text to
the screen that a lot of programmers will need. Instead of having
everyone reinventing the wheel, GNU systems come with
libraries of pre-defined functions for many of
these tasks. Over the years, thousands of such functions have
accumulated. If you were writing a program that plays the game,
BINGO, you would have to write the game specific functions yourself
but you would find that others have already written functions for
generating random numbers, displaying results to the screen, getting
input from the player etc.
Every C program must have a function called
main(), this is where execution of the program
begins. The code of a program could be
completely contained in main() but it is more usual
to split a program into many small functions.
The first piece of useful code we will look at is a classic.
When compiled and run it will display a simple greeting to your screen.
This program defines a function called
main() and calls (uses) a
function called printf().
printf() is a function provided for us by the
"Standard Device Input/Output library". This library
comes with every GNU system. Here's our little program:
Example 2-1. hello.c
#include <stdio.h>
int
main()
{
printf("hello, world\n");
return 0;
}
Compile and run this program before moving on. If all goes well,
it will display the text string
"hello, world" to your
terminal (the standard output device). Here's the compilation command
just in case you've forgotten:
ciaran@pooh:~/book$ gcc -Wall -o hello hello.c
ciaran@pooh:~/book$ ./hello
hello, world
ciaran@pooh:~/book$
If you got any error or warning messages check that your code matches
the code in this book exactly. Any messages you got should tell you
the line of code where your mistake is. If you've typed the code in
correctly you will get no such messages.