void in C?
What does void mean in C? I think it’s confusing to think of it having a singular meaning. It is part of a number of unrelated syntactic forms, and should be understood separately in each:
void foo(int), the void signifies that “foo does not return a value”.char bar(void), the void signifies that “bar has zero parameters”.void* baz, the void signifies that “baz points to a value of unknown type”.It is confusing to call void a “type”. There are positions where a normal type (int) can be used, but void cannot. For example, int foo; is a valid declaration, but void foo; is not. There are also positions where void can be used, but a normal type cannot. For example, char foo(int) { return 'c'; } is not a valid function definition.
The standard calls void an “incomplete type”, but I find this unenlightening in the case of char bar(void).
I wrote this because I felt like it. This post is my own, and not associated with my employer.
Jim. Public speaking. Friends. Vidrio.