structure assignment, why you would want to do it

demon at desire.wright.edu demon at desire.wright.edu
Sat Aug 25 04:41:55 AEST 1990


In article <3615 at goanna.cs.rmit.oz.au>, ok at goanna.cs.rmit.oz.au (Richard A. O'Keefe) writes:
> In article <352 at saxony.pa.reuter.COM>, dgil at pa.reuter.COM (Dave Gillett) writes:
> : In <1081.26d26274 at desire.wright.edu> demon at desire.wright.edu writes:
> : >struct_thing -= still_more_struct;
> : >struct_thing *= even_more_struct;
> : 
> :      Recall that "x -= y" is equivalent to "x = x - y".  Will your VAX C let
> : you get away with "struct_thing = struct_thing - still_more_struct"?  How
> : have you declared "struct_thing" that lets it both (a) be a structure, and 
> : (b) be in the domain of subtraction, which normally works on *numbers*???
> 
> Let that stand as typical of the answers.
> 

..COBOL definitions/examples removed

> and so on will do the trick.  Given the equivalent of
> 	struct { int a, b; float c; } x;
> 	struct { int b, c, d; } y;
> the COBOL equivalent of x += y would be
> 	ADD CORRESPONDING y TO x.
> which would do
>     /*	x.a : no change, as there is no y.a field */
> 	x.b += y.b;
> 	x.c += y.c;	/* only the names have to match */
>     /*  y.d : not used, as there is no x.d field */
> 
> As it happens, this facility is not present in C.  There is nothing in
> the language which would make it especially difficult to implement, it's
> just that nobody ever thought it worth while.  It was a sensible question.
> 
	Thanx!  Everyone wondered why I asked it.  If you are doing
transformations/similar math stuff or (like I'm doing) vehicle position updates
for a military simulation, you'd like to be able to say

pres_location += current_move;

to update the vehicles location.  I could go through and assign the x,y,z
locations individually, but it would be nice (and cleaner looking) to do a
structure assignment.
        It was intended that the assignement/operator would only be performed
on like structure elements, and only on elements defined for the operater(s).

        Hmm, the next C standard is how many years away? :)

Brett
demon at wsu.bitnet



More information about the Comp.lang.c mailing list