What does void mean in C, C++, and C#?

c, c#, c++, language-design, void

Solution

Basically it means "nothing" or "no type"

There are 3 basic ways that void is used:

Function argument: `int myFunc(void)` -- the function takes nothing.

Function return value: `void myFunc(int)` -- the function returns nothing

Generic data pointer: `void* data` -- 'data' is a pointer to data of unknown type, and cannot be dereferenced

Note: the `void` in a function argument is optional in C++, so `int myFunc()` is exactly the same as `int myFunc(void)`, and it is left out completely in C#. It is always required for a return value.

Problem

Looking to get the fundamentals on where the term "void" comes from, and why it is called void. The intention of the question is to assist someone who has no C experience, and is suddenly looking at a C-based codebase.

Original source

Related problems