
/* main.c */
#include "arraycmp.h" /* from Listing 1 */

arraycmp_declare(double);
arraycmp_declare(int);

void f(), g();

int a[10], b[10];
double x[20], y[20];

int main()
    {
    if (arraycmp(a, b, 10) == 0)
        ...
    f();
    if (arraycmp(x, y, 20) == 0)
        ...
    g();
    ...
    }

/* f.c */
#include "arraycmp.h" /* from Listing 1 */

arraycmp_implement(int);

int m[30], n[30];

void f()
    {
    while (arraycmp(m, n, 30) != 0)
        ...
    }

/* g.c */
#include "arraycmp.h" /* from Listing 1 */

arraycmp_implement(double);
arraycmp_declare(int);

double u[10], v[10];
int p[40], q[40];

void g()
    {
    if (arraycmp(u, v, 30) != 0)
        ...
    while (arraycmp(p, q, 40) > 0)
        ...
    }

