void casts; and C definition question

Tim Maroney tim at unc.UUCP
Wed Oct 5 07:55:14 AEST 1983

The cited use of the (void) type cast is indeed incorrect if the operator
precedence rules of Kernighan and Ritchie are correct.  The example given
went like:

(void) foo(x);

to show that nothing important is returned from foo.  In fact, the
parentheses of the function call argument list group first, meaning that the
value returned by foo is a function of type void.  To do it right, you would
have to say:

((void) foo)(x);

I suppose that the rather sloppy definition of void in the public
documentation would allow you to make a weak case for the former being
correct, though.  Still, special properties of void notwithstanding, only
the latter form is correct.

Isn't C wonderful?  Wait, let me leave the room before you answer...

Tim Maroney, duke!unc!tim

More information about the Comp.lang.c mailing list