Search code examples
c#c++cvoidlanguage-design

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


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.


Solution

  • Basically it means "nothing" or "no type"

    There are 3 basic ways that void is used:

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

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

    3. 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.