Shouldn't this work?

Larry West west at sdcsla.UUCP
Sat Aug 25 09:26:03 AEST 1984


Yes, it should, and it probably is a problem with the 4.2bsd compiler.
Try this fragment for fun:

	extern void *beep();
	void (*funk)() = (void (*)()) beep;
	main () {}

When used in this skeleton form, "cc" ("ld") only complained that "beep"
was undefined, and "lint" only said that "funk" was defined but never used.

[The original article had declared "extern void beep()", and used it
 in an equivalent structure initialization].

I don't know what "void *" >means<, nor why it is type-compatible in this
case, but there it is.   Example tried on Sun-2 and Vax.   Long live 4.2bsd.

	-- Larry West, UC San Diego, Institute for Cognitive Science
	-- decvax!ittvax!dcdwest!sdcsvax!sdcsla!west
	-- ucbvax!sdcsvax!sdcsla!west
	-- west at NPRDC



More information about the Comp.lang.c mailing list