Listing 9

struct range
   {
   int xmin;       /* Comment on xmin */
   int xmax;       /* Etc. */
   int ymin;
   int ymax;
   };

/* These are the references */

/* Comment on data_range */
extern struct range data_range;
/* Comment on variable1 */
extern int variable1;
/* Comment on variable2 */
extern int variable2;

/* These are the definitions */

#ifdef ALLOCATE_SPACE
struct range data_range = { 0, 0, 0, 0 };
int variable1 = 1;
int variable2 = 0;
#endif