Что означает void в С++
В C ещё есть аргумент функции void, как тяжкое наследие непродуманного дизайна, которое привело к тому, что функция без аргументов может принимать произвольное количество аргументов любого типа. В данном случае явно указанный void запрещает передавать что либо в качестве аргументов.
void foo(void) {}
От себя добавлю, что у меня никогда не возникало необходимости что-то передать в функцию без параметров.
void означает, что функция не возвращает значение.
Если у нас:
int f1() {
...
}
, то функция обязательно возвращает значение типа int мы можем использовать это значение внутри выражения:
x = 2 + f1() * 13;
Но если у нас:
void f2() {
...
}
, то функция НЕ возвращает значения и единственный способ её использования:
f2();
отдельным оператором.
Другое использование void - указатель на void:
void *p;
Это означает, что в переменной p находится просто адрес участка памяти без информации о том, значение какого типа содержится в этой памяти. Этот механизм активно используется в языке C и в низкоуровневом C-подмножестве языка C++. Но в высокоуровневом C++-коде он не нужен.
Отсутствие возвращаемого значения
Синтаксис языка обязывает для объявления функций и указателей указывать тип. Самый простой в этих условиях способ указать что функция не должна ничего возвращать а указатель просто служит для хранения адреса - указать некий особый тип. Вот и сделали void таким типом.
И вообще это очень распространенная практика использовать особое число или символ, который означает что там может что-то быть, но там ничего нет)
у вас на счету 0 денег (пора бы вводить такие купюры)
прочерки в разных документах и анкетах
мы открыты с "закрыто" до "закрыто"
Пустой тип.
Помимо того, что используется для указания отсутствия возвращаемого значения или отсутствия принимаемых параметов, также например в случае
void * ptr
показывает, что ptr является указателем на некоторый неизвестный тип.