Compatible functions (C only)

For two function types to be compatible, they must meet the following requirements:

The composite type of two function types is determined as follows:

For example, for the following two function declarations:

int f(int (*)(), double (*)[3]); 
int f(int (*)(char *), double (*)[]);

The resulting composite type would be:

int f(int (*)(char *), double (*)[3]);

If the function declarator is not part of the function declaration, the parameters may have incomplete type. The parameters may also specify variable length array types by using the [*] notation in their sequences of declarator specifiers. The following are examples of compatible function prototype declarators:

double maximum(int n, int m, double a[n][m]);
double maximum(int n, int m, double a[*][*]);
double maximum(int n, int m, double a[ ][*]);
double maximum(int n, int m, double a[ ][m]);

Related information



[ Top of Page | Previous Page | Next Page | Contents | Index ]