Listing 4

------------------------ globals.h -----------------------

#ifndef GLOBALS_H
#define GLOBALS_H

#ifdef DRIVER
#define CLASS
#define INIT (x)   = x
#else
#define CLASS      extern
#define INIT (x)
#endif

CLASS char         date[9]   INIT("01-01090");

#endif         /* GLOBALS_H */

---------------------- file1.c ---------------------------

#define DRIVER
#include "globals.h"

main()
{
strcpy(date, "01-01-90");
foo();
puts(date);
}

---------------------- file2.c ---------------------------

#include "globals.h"

foo()
{
puts(date);
strcpy(date, "02-02-90");
puts(date);
}
----------------------------------------------------------