From: utzoo!decvax!harpo!seismo!hao!menlo70!sytek!zehntel!tektronix!tekmdp!bronze!grahamr Newsgroups: net.lang.c Title: Re: C oddity -- language and/or compiler Article-I.D.: bronze.399 Posted: Wed Jan 19 09:46:29 1983 Received: Fri Jan 28 20:37:35 1983 References: rabbit.1067 PCC goes along with the reference manual where the Ritchie compiler doesn't. I don't have a white book page number, but in section 10 of the paper "The C Programming Language -- Reference Manual" (I think this paper appears as an appendix to the white book), note: A C program consists of a sequence of external definitions. An external definition declares an identifier to have storage class extern (by default) or perhaps static, and a specified type. The type-specifier (sec. 8.2) may also be empty.... Also, note that in the entries in the syntax summary (sec. 18.4) the only part of these external definitions that is required is the semicolon! program : external-definition external-definition : data-definition data-definition : EXTERN[opt] type-specifier[opt] init-declarator-list[opt] ; PCC is the only compiler I know of which actually performs correctly. Your example: double a; b,c,d; declares a to be "extern double" and b, c, and d to be "extern int". In the VAX code for "main(){a=b;}" note that an integer-to-floating conversion is done: _main: .word L16 cvtld _b,r0 movd r0,_a ret - Graham Ross, Tektronix