Path: utzoo!attcan!uunet!husc6!bloom-beacon!think!ames!umd5!mimsy!chris From: chris@mimsy.UUCP (Chris Torek) Newsgroups: comp.lang.c Subject: Re: += in C Message-ID: <12264@mimsy.UUCP> Date: 1 Jul 88 07:37:02 GMT References: <2314@ncr-sd.SanDiego.NCR.COM> Organization: U of Maryland, Dept. of Computer Science, Coll. Pk., MD 20742 Lines: 26 In article <2314@ncr-sd.SanDiego.NCR.COM> steves@ncr-sd.SanDiego.NCR.COM (Steve Schlesinger) writes: >When optimized, yes they [a=a+b and a+=b] are the same. ... consider > a[i][j] = a[i][j] + b >vs. > a[i][j] += b > >In the second case the address a[i][j] is computed only once and reused. >This is faster both at compilation and execution times. > >An optimizer would convert the first to the second. (unless, of course, one or more of *a, i, and j have the `volatile' attribute) [was this a good time not to post :-) ?] Far more important than the `optimisation' is readability. If I mean add 3 to something, I should be able to write `add 3 to <...>'. I can do it in COBOL; I ought to be able to do it in any supposedly superiour language. Quick, are both sides the same?: p->a[l+o[p->b]] = p->a[1+o[p->b]] + 3; -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7163) Domain: chris@mimsy.umd.edu Path: uunet!mimsy!chris