void avoidance

Damon Permezel dapermezel at watmath.UUCP
Sun Oct 9 04:43:19 AEST 1983

	the construct

		(coid) f()

	is not meaningless at all.  

I didn't say it was meaningless. I said it was as devoid of meaning as
(void) ++i.

	....  The complex statement
	given in the initial flame means something entirely different -
	that being the call of a (void)-declared function f() that was
	not declared locally.

Au contrair. It does not say that 'f' was declared to be type void elsewhere.
It casts 'f' to be a pointer to a function that returns nothing. 'f' could
indeed return char *.

I have never seen any rules for type cast with void types. I suspect that
the present behaviour just 'came out in the wash' with many compilers.
Sure, they allow

	(void) f();

but they also allow

	(void) ++i; and (void) 1;	/* PCC does, at least */

This is not very useful.


More information about the Comp.lang.c mailing list