Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!vaxine!wjh12!genrad!decvax!harpo!ihnp4!zehntel!hplabs!sri-unix!DBrown.CSC_SDO@Hi-Multics.ARPA From: DBrown.CSC_SDO@Hi-Multics.ARPA Newsgroups: net.unix-wizards Subject: Re: is "extern" ambiguous Message-ID: <12050@sri-arpa.UUCP> Date: Tue, 3-Apr-84 14:38:00 EST Article-I.D.: sri-arpa.12050 Posted: Tue Apr 3 14:38:00 1984 Date-Received: Tue, 10-Apr-84 07:35:19 EST Lines: 30 Hmmn... Well, I did phrase that as if I wanted to say "static int foo()" inside a function, didn't I. Perhaps the question should be: can I say main() { char *p, *capitalize_names(); ... } static char *capitalize_names(q) char *q; { ... without *either* static or extern declarations. My lint (not unexpectedly) gets upset when I tell it that a function is both static and external. I would not expect it to complain if I say something is "function returning char pointer" and later add the fact that it's "static". So I'll reask the question: does anyone have a compiler which *requires* a static be declared extern? If they do I'll conclude dropping the "extern" in my declaration is non-portable. If they don't, I'll conclude that the use of extern ::= static is the non-portable construct. IN EITHER CASE I CONCLUDE AND PROPOSE THAT THE CONSTRUCT IS LEGAL C, since at least one standard-conforming C compiler allows it. I like C as it stands, too! --dave