Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!sundc!pitstop!sun!amdcad!ames!hao!oddjob!gargoyle!ihnp4!cbosgd!clyde!watmath!orchid!atbowler From: atbowler@orchid.waterloo.edu (Alan T. Bowler [SDG]) Newsgroups: comp.lang.c Subject: Re: ANSI question Message-ID: <11823@orchid.waterloo.edu> Date: Tue, 24-Nov-87 19:50:31 EST Article-I.D.: orchid.11823 Posted: Tue Nov 24 19:50:31 1987 Date-Received: Sun, 29-Nov-87 09:35:20 EST References: <3086@sigi.Colorado.EDU> Reply-To: atbowler@orchid.waterloo.edu (Alan T. Bowler [SDG]) Organization: U. of Waterloo, Ontario Lines: 23 In article <3086@sigi.Colorado.EDU> swarbric@tramp.Colorado.EDU (SWARBRICK FRANCIS JOHN) writes: >I assume that this will be the new ANSI specification. Does MSC allow this? > >void testfunc(char **str); /* function prototype */ > >void testfunc(char **str) >{ > /* actual code */ >} I know the above is legal, and compilers are supposed to accept it. I suggest that for style reasons you get into the habit of coding the prototype as extern void testfunc(char **str); The compiler may be very good at distinguishing that this is a proto-type and not the actual function, but humans are less sensitive to things like semi-colon at the end of the line. 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..."