Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site brl-tgr.ARPA Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!panda!talcott!harvard!seismo!brl-tgr!tgr!Purtill@MIT-MULTICS.ARPA From: Purtill@MIT-MULTICS.ARPA (Mark Purtill) Newsgroups: net.lang.c Subject: Re: \"Vectorizing C compiler for the Cray\" Message-ID: <9933@brl-tgr.ARPA> Date: Fri, 12-Apr-85 18:47:41 EST Article-I.D.: brl-tgr.9933 Posted: Fri Apr 12 18:47:41 1985 Date-Received: Sun, 14-Apr-85 06:48:14 EST Sender: news@brl-tgr.ARPA Lines: 39 >> A committee ... is implementing the full C language with one minor >> modification. In order to have compatibility with Fortran all subroutine >> parameters will be passed by address. >(I just can't see how people can get so steamed >up over such a slight modification) People get upset about it because it's /NOT/ a slight modification. The following sort of thing is very common in C int foo( arg) int arg ; { for( ; arg <= 0 ; arg--){ /* do something */ } } main() { int arg ; arg = 5 ; foo( arg) ; printf( "%d\n", arg) ; } In real C, this will print 5, because arg is passed by value. If you instead pass arg by address, it will print 0, which is WRONG. The main think, tho, is that this is a pointless change. You can either add the "fortran" key-word (which some but not all C compilers have) to the declaration, OR you can just use pointers where appropriate. Mark ^.-.^ Purtill at MIT-MULTICS ((")) 2-032 MIT Cambrige MA 02139