Article View: comp.sys.mac
Article #22615Re: rect.top vs: rect.topLeft in C
From: brian
Date: Mon, 07 Dec 1987 18:52
Date: Mon, 07 Dec 1987 18:52
49 lines
2379 bytes
2379 bytes
In article <2571@watcgl.waterloo.edu>, kdmoen@watcgl.waterloo.edu (Doug Moen) writes:
} Although I haven't seen this exact trick used in any Mac C environment
} so far, it *is* possible to define Rect so that you can use the
} syntax described in Inside Macintosh for accessing its fields:
}
} typedef struct {
} Point topLeft;
} Point botRight;
} } Rect;
}
} #define top topLeft.v
} #define left topLeft.h
} #define bottom botRight.v
} #define right botRight.h
}
} Note that LightSpeed C defines top,left,bottom and right as fields
} and topLeft,botRight as macros, while the above implementation does
} the reverse, *and* gives you a cleaner syntax.
} --
} Doug Moen
} University of Waterloo Computer Graphics Lab
} UUCP: {ihnp4,watmath}!watcgl!kdmoen
} INTERNET: kdmoen@cgl.waterloo.edu
The problem here is that you can no longer use variables with the names
top, left, bottom or right. One of the old Megamax C's did something like
this as I recall. (It wasn't necessarily this example.) I wrote a program
in which I used a variable called "top" (using this as an example.) We all
know how good most C compilers are at explaining the problem...
I spent quite some time trying to figure out why
int top;
gave a "Syntax Error."
Variables with the names top, left, bottom and right are much more common
in C programs than variables named topLeft, botRight, so that's why the macros
are done in a non-intuitive manner.
Brian H. Powell
UUCP: ...!uunet!ut-sally!brian
ARPA: brian@sally.UTEXAS.EDU
_Work_ _Not Work_
Department of Computer Sciences P.O. Box 5899
Taylor Hall 2.124 Austin, TX 78763-5899
The University of Texas at Austin (512) 346-0835
Austin, TX 78712-1188
(512) 471-9536
Technical Details
Message-ID:
<9826@ut-sally.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!rutgers!husc6!ut-sally!brianReferences:
<870053@hpcilzb.HP.COM> <3424@husc6.harvard.edu> <2571@watcgl.waterloo.edu>Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!rutgers!husc6!ut-sally!brian From: brian@ut-sally.UUCP Newsgroups: comp.sys.mac Subject: Re: rect.top vs: rect.topLeft in C Message-ID: <9826@ut-sally.UUCP> Date: Mon, 7-Dec-87 13:52:23 EST Article-I.D.: ut-sally.9826 Posted: Mon Dec 7 13:52:23 1987 Date-Received: Sat, 12-Dec-87 11:44:12 EST References: <870053@hpcilzb.HP.COM> <3424@husc6.harvard.edu> <2571@watcgl.waterloo.edu> Organization: U. Texas CS Dept., Austin, Texas Lines: 49 Summary: why nobody does this