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 */