Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 (Tek) 9/26/83; site daemon.UUCP
Path: utzoo!watmath!clyde!burl!hou3c!hocda!houxm!houxz!vax135!cornell!uw-beaver!tektronix!daemon!damonp
From: damonp@daemon.UUCP (Damon Permezel)
Newsgroups: net.unix-wizards
Subject: re: # define extern?
Message-ID: <243@daemon.UUCP>
Date: Mon, 4-Jun-84 03:01:15 EDT
Article-I.D.: daemon.243
Posted: Mon Jun  4 03:01:15 1984
Date-Received: Wed, 6-Jun-84 06:48:52 EDT
Organization: Tektronix, Beaverton OR
Lines: 30

What I have eventually come up with is the following. I am
not entirely satisfied with it, but it works ok. I tried the
# define extern route, but was unable to provide initialisers.

===extern.h=====
/*
 * common external definitions
 */

#define EXTERN_IT

#include "extern.c"
====extern.c====
/*
 * external definitions
 */

#ifndef EXTERN_IT
#   include "dclass.h"
#   undef  ev
#   define ev(type, var, init)  type var = init
#else
#   undef  ev
#   define ev(type, var, init)  extern type var
#endif

ev(char *, usage, "dclass {Machine= | [Class=]}");
ev(char *, mach, 0);            /* desired machine                      */
ev(char, home[MAX_PATH+1], 0);  /* home directory                       */
ev(char, verbose, 0);           /* verbose flag                         */