Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!apple!netcom!avery From: avery@netcom.UUCP (Avery Colter) Newsgroups: comp.lang.c Subject: Dereferencing Typecast Integer Literals Message-ID: <22700@netcom.UUCP> Date: 3 Feb 91 20:28:46 GMT Organization: Netcom- The Bay Area's Public Access Unix System {408 241-9760 guest} Lines: 54 I would like to know something. In BASIC (waiting for the groans to subside), there were the POKE, PEEK, and CALL commands, which respectively store a value in a location, read the present value of a location, or start executing a machine language function starting at the location. Now, obviously, in C, the most obvious way to do any of these is to declare a char pointer. Dereferencing this pointer as an r-value PEEKs, dereferencing it as an l-value POKEs, and dereferencing it with a parameter list postfixed CALLs. However..... since all pointer objects are pseudo-integer in nature, and since they are considered to be typecast cousins of the true integers, my question is whether it is necessary to even declare a pointer for these tasks. I can't find any explicit reerence to it in either of the books I have, so what I'd like to know is: 1. Since a constant literal integer of the appropriate size for the implementation can be typecast into a pointer to any type, is it then possible to dereference the result of this typecast expression? i.e. { char s; ... s = *(char *)0xC000; /* C000: address of the keyboard strobe on Apple II */ ... } 2. If #1 can be done, then can a dereferenced typecast integer constant be used as an l-value? i.e. *(char *)0xC010 = 0; /* C010: value zeroed to signal ready to take another character into C000 */ 3. Can a DTIC have a parameter list postfixed to make it into a function call? i.e. *(void (*()))0xFC58(); /* FC58: address of firmware HOME function */ What's the consensus on all this? Is it better to just declare const pointer objects for all the firmware points you wish to have on hand? -- Avery Ray Colter {apple|claris}!netcom!avery {decwrl|mips|sgi}!btr!elfcat (415) 839-4567 "I feel love has got to come on and I want it: Something big and lovely!" - The B-52s, "Channel Z"