Pointers to functions

christopher mills mills-cl at pike.cis.ohio-state.edu
Mon Mar 7 12:51:15 AEST 1988


/*   I think D should have Ada-style comments...  */

	Hello there.  I was writing a compiler for a simple C-like language of
my own design for a single-board 6809 computer of mine, and I got around to
the pointer arithmetic part and wondered what C does when you try to do
pointer arithmetic on a pointer to a function.  I figgured it would generate
an error (since functions do not have a "size"), but being curious, I tried it
on a few C compilers I had around.  Suprisingly, many don't flag it as an
error at all and do something implementation-defined and unpredictable (for
example, Lattice C 3.10 on the Amiga treats it as if it were a char *, which
I find odd, because it generates 68000 code which must be even-address
aligned - I would have at least expected it to treat it as a short *).
	K&R doesn't say anything about this (as far as I know).  I think it
shows a breakdown in the typing system - pointers to functions aren't really
pointers, but a distinct type.  Thoughts?  Flames?

	Oh, and as long as were on our D-wishlist, I'd like to be able to
break and continue from more than one loop (yes, I am one of those people who
use continue a lot).  If this has already been mentioned, apologies - I'm
getting on the tail-end of this one, because rn unsubscribed me when the
system crashed and I hadn't noticed until now...

					Chris

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 _____________________           |     Christopher Mills.
(_)________________   \          |     mills-cl at polaris.cis.ohio-state.edu
  ________________|\   \         |     Current Thought: The trouble with good
 (_)______________\_\   \        |        ideas is everyone wants you to do
   ______________________\       |        something with them...
  (_)____________________|       |     DISCLAMER: I really wish I could blame
                                 |          my thoughts on someone else...
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-



More information about the Comp.lang.c mailing list