[Main]
Keywords=void

[Description]
Empty data type.

[Explanation]
When used as a function return type, void means that the function does not
return a value. For example,
<PRE>void hello (char *name)
{
  printf("Hello, %s.", name);
}
</PRE>
When found in a function heading, void means the function does not take any
parameters. For example,
<PRE>int init (void)
{
  return 1;
}
</PRE>
This is not the same as defining
<PRE>int init ()
{
  return 1;
}
</PRE>
because in the second case the compiler will not check whether the function is really called
with no arguments at all; instead, a function call with arbitrary number of arguments
will be accepted without any warnings (this is implemented only for the compatibility
with the old-style function definition syntax).
<BR><BR>
Pointers can also be declared as void. They can't be dereferenced without explicit casting.
This is because the compiler can't determine the size of the object the pointer
points to. For example,
<PRE>int x;
float f;
void *p = &amp;x;    // <I>p points to x</I>
*(int*)p = 2;
p = &amp;r;          // <I>p points to r</I>
*(float*)p = 1.1;
</PRE>
