Initializers containing function names

Henry Spencer henry at utzoo.uucp
Wed Mar 14 03:45:17 AEST 1990


In article <383 at latvax8.lat.oz> MICPRF at latvax8.lat.oz writes:
>My cc compiler complains about illegal initialization if an attempt is
>made to include a function name in an initializer...
>
>int dummy(){};
>int address = (int) dummy;
>
>In the S code this type of thing is embedded in arrays of structures, for
>the hash tables but the problem seems to come down to the above...

The problem may be the cast rather than the use of the function name.
Through what seems to have been an accidental oversight, casts were not
on the list of compile-time operators in K&R1, and some compilers have
faithfully perpetuated this mistake.

(Casting a function pointer to int is also a very machine-dependent
operation, which may not give meaningful results, but that's a different
issue.)
-- 
MSDOS, abbrev:  Maybe SomeDay |     Henry Spencer at U of Toronto Zoology
an Operating System.          | uunet!attcan!utzoo!henry henry at zoo.toronto.edu



More information about the Comp.lang.c mailing list