There is a data type called void. This type is used for those functions which do not return a value. It can only be used for the type (of the return value of) functions. A function which does not return a value is (in some languages, e.g. Pascal) called a procedure.
If a function has been declared as being of type "void", and when that function is used in a statement, its return value is used in some expression, then the compiler will give a fatal error - saying that it is not possible to use a value from a function which returns nothing. Procedures are used because they alter the program state or do input/output.
Type void has one other use in conjunction with functions. If a function is declared with void in the parenthesis, it means that the function takes zero or no parameters. The compiler will give an error if a source program attempt to pass a parameter to such a function, as in the following declaration:
int func_with_no_param(void);
There is also the concept of the type: pointer to void. But this is very different. It is used to mean that the type of object that a pointer points to is not being specified by the programmer. This is discussed in detail under the subject of: pointers.