+= in C

Chris Torek chris at mimsy.UUCP
Fri Jul 1 17:37:02 AEST 1988


In article <2314 at ncr-sd.SanDiego.NCR.COM> steves at 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 at mimsy.umd.edu	Path:	uunet!mimsy!chris



More information about the Comp.lang.c mailing list