Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!husc6!rutgers!sunybcs!bingvaxu!leah!itsgw!steinmetz!ge-dab!codas!ateng!chip
From: chip@ateng.UUCP (Chip Salzenberg)
Newsgroups: comp.lang.c
Subject: Re: ANSI question
Message-ID: <115@ateng.UUCP>
Date: Tue, 1-Dec-87 17:45:18 EST
Article-I.D.: ateng.115
Posted: Tue Dec  1 17:45:18 1987
Date-Received: Tue, 8-Dec-87 05:41:43 EST
References: <3086@sigi.Colorado.EDU> <11823@orchid.waterloo.edu>
Reply-To: chip@ateng.UUCP (Chip Salzenberg)
Organization: A T Engineering, Tampa, FL
Lines: 28

In article <11823@orchid.waterloo.edu> atbowler@orchid.waterloo.edu (Alan T. Bowler [SDG]) writes:
>
>I suggest that for style reasons you get into the habit of coding
>the prototype as
>
>extern void testfunc(char **str); 
>
>Use of "extern" says to the human reader quiet explicitly
>"This is not the real definition (i.e. the one that creates it)
> That is somewhere else, but the object is used like this..."

In fact, the construct

  extern void testfunc(char **str)
  {
	  /* Real function goes here */
  }

is legal!  Extern is the default anyway.

This kind of function declaration is generated by some C++ translators.
Microsoft C loves it, but Turbo C chokes on it. :-(

-- 
Chip Salzenberg         "chip@ateng.UUCP"  or  "{codas,uunet}!ateng!chip"
A T Engineering         My employer's opinions are not mine, but these are.
   "Gentlemen, your work today has been outstanding.  I intend to recommend
   you all for promotion -- in whatever fleet we end up serving."   - JTK