Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!mcnc!unc!steele From: steele@unc.UUCP Newsgroups: comp.sys.mac Subject: Re: Help wanted: a LSC question Message-ID: <2286@unc.cs.unc.edu> Date: Thu, 3-Dec-87 19:23:36 EST Article-I.D.: unc.2286 Posted: Thu Dec 3 19:23:36 1987 Date-Received: Sun, 6-Dec-87 19:33:34 EST References: <870053@hpcilzb.HP.COM> <174400081@uxc.cso.uiuc.edu> Reply-To: steele@unc.UUCP (Oliver Steele) Organization: University of North Carolina, Chapel Hill Lines: 42 dorner@uxc.cso.uiuc.edu writes: >[....] >typedef struct > { > union { > int coords[4]; > Point funnies[2]; > } r_un; > } Rect ; >#define top r_un.coords[0] >#define left r_un.coords[1] >#define bottom r_un.coords[2] >#define right r_un.coords[3] >#define topLeft r_un.funnies[0] >#define botRight r_un.funnies[1] > >This would have worked fine, and allowed me to say r.topLeft. It would also have caused my code that says int top, left, bottom, right; to break in bizarre ways that would have been even more difficult to find than the r.topLeft problem was (for me, at least). Granted, Point topLeft; breaks anyway, but if I'm a representative coder then that rarely comes up. >Perhaps (I'm not well versed (yet) in the ins and outs of Macintosh >programming) there are reasons that this was not done. But to chalk it >up to a deficiency in C is not correct. It's not a deficiency in C, but it is a situation where C's syntax is different from Pascal. Since the definitions are specified in Pascal, then C programming on the Mac is arguably less well documented than is Pascal programming, and this is a deficiency of the C environment. ------------------------------------------------------------------------------ Oliver Steele ...!{decvax,ihnp4}!mcnc!unc!steele steele%unc@mcnc.org "Life isn't fair. It's just fairer than death, that's all." -- William Goldman _The Princess Bride_