[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1.1 The basics of the function type

Functions are accessed through function pointers. As has been demonstrated implicitly earlier, every function call basically is nothing but a dereferenced function pointer along with a list of arguments. Take this simple example:

 
void
my_func(string str, int value)
{
    write("The string is '" + str + "' and the value is " + value + ".\n");
    return;
}

The function is then called, as demonstrated earlier, by giving the function name followed by a list of the arguments within brackets:

 
e.g.
    my_func("smurf", 1000);

Now we add the idea of the function type where the address of the function can be taken and assigned to another variable:

 
e.g.
    function new_func;

    new_func = my_func;       // or equivalent
    new_func = &my_func();

    my_func("smurf", 1000);   // or equivalent
    new_func("smurf", 1000);

Beware that before the variable new_func has been set to a proper value, it doesn't refer to any function at all. Using it will cause a run-time error.



This document was generated by Hekay Permer on April, 20 2005 using texi2html