I'm taking a look at all the good stuff GNU has made and I ran into something I have never seen before.
For example line 166 in binutils-2.9.1/bin-utils/nm.c you have this
Code:
/* Support for different output formats. */
struct output_fns
{
/* Print the name of an object file given on the command line. */
void (*print_object_filename) PARAMS ((char *filename));
/* Print the name of an archive file given on the command line. */
void (*print_archive_filename) PARAMS ((char *filename));
/* Print the name of an archive member file. */
void (*print_archive_member) PARAMS ((char *archive, CONST char *filename));
/* Print the name of the file (and archive, if there is one)
containing a symbol. */
void (*print_symbol_filename) PARAMS ((bfd * archive_bfd, bfd * abfd));
/* Print a line of information about a symbol. */
void (*print_symbol_info) PARAMS ((symbol_info * info, bfd * abfd));
};
or this on line 286
Code:
static void
usage (stream, status)
FILE *stream;
int status;
{
What is "PARAMS"? What is "usage"?
How are there parameters outside of the parameter area such as "FILE *stream" in the second example.
These don't look like regular functions to me if they are that.