2.4. Making your own Functions
In that last example we defined just one function. To add
another function you must generally do two things. First you must
define the function, just like we defined
main(). Also you you must
declare it. Declaring a function is like telling
GCC to expect it, we didn't have to declare main()
because it is a special function and GCC knows to expect it. The
name, or identifier, you give to a function must appear in both the
definition and the declaration.
Functions identifiers can be made up of the alphabetic
characters "a"-"z" and
"A"-"Z", the numeric characters
"0"-"9" and the underscore character
"_". These can be used in any order so long as the first
character of the identifier is not a number. As we said earlier, C is
case-sensitive so My_Function is completely
different to my_function. A functions identifier
must be unique. Identifiers can safely be up to
63 characters long or as short as 1 character.
Along with it's identifier you must give each function a
type and a block of code. The
type tells the compiler what sort of data it
returns. The return value of a function can be
ignored, printf() returns an integer saying how
many character it displayed to the terminal. This information wasn't
important to us so we ignored it in our program. In the next chapter
we'll discuss types of data in detail, until then we'll gloss over
return values.
Here's a program that defines three functions:
Example 2-3. three_functions.c
#include <stdio.h>
/* function declarations */
int first_function(void);
int goodbye(void);
int
main() // function definition
{
printf("the program begins...\n");
first_function();
goodbye();
return 0;
}
int
first_function() // function definition
{
/* this function does nothing */
return 0;
}
int
goodbye() // function definition
{
printf("...and the program ends.\n");
return 0;
}
In the above example we wrote
first_function()
which does nothing and
goodbye() which displays a
message. Functions must be declared
before they
can be called are called, in our case this means they must appear our
definition of
main(). In practice, function
declarations are generally grouped at the top of a file after any
#include lines and before any function
definitions.