In
C,
C++, and
whatever else, this what you call it when you
define a
function like so:
void myfunc( char *somearg, int foo );
The
actual function code itself might be in another
module, another
library, or later in the same
source file from which you
prototyped.
Prototyping is
typically done in
header files (see
#include)
C supports "non-strict" prototyping, in which you don't prototype the args, so:
void myfunc( char *somearg, int foo );
becomes:
void myfunc();
However
C++ doesn't like this.
gcc will
support this with the -fno-strict-prototypes
flag on a C++ file.
If you try to use a function without prototyping it, and the function isn't earlier in the same source file, then your compiler won't be too happy with you.