Введение

Тип возврата для функций, которые не возвращают значения при вызове, – тип void в языках программирования. Тип void, в ряде языков программирования, произошедших от C и Algol68, является типом возврата функции, которая завершается нормально, но не предоставляет никакого результирующего значения вызывающей стороне. Обычно такие функции вызываются ради их побочных эффектов, таких как выполнение определенной задачи или запись в выходные параметры. Использование типа void в этом контексте сопоставимо с процедурами в Pascal и синтаксическими конструкциями, определяющими подпрограммы в Visual Basic. Он также аналогичен единичному типу, используемому в функциональных языках программирования и теории типов. Сравнение смотрите в разделе "Единичный тип" #В языках программирования. Языки C и C++ также поддерживают указатель на тип void (обозначаемый как void *), но это несвязанное понятие. Переменные этого типа являются указателями на данные неизвестного типа, поэтому в этом контексте (но не в других) void * действует примерно как универсальный или верхний тип. Программа может преобразовать указатель на любой тип данных (за исключением указателя на функцию) в указатель на void и обратно в исходный тип без потери информации, что делает эти указатели полезными для полиморфных функций. Стандарт языка C не гарантирует, что различные типы указателей имеют одинаковый размер или выравнивание.

В Хаскелле

В отличие от C++, в функциональном языке программирования Haskell тип void (или пусто́й тип) обозначает тип, не имеющий значений. Функция, возвращающая тип void, не возвращает никакого результата, а программа с побочными эффектами и сигнатурой типа IO Void не завершается или аварийно прекращает работу. В частности, не существует полных функций, возвращающих тип void.