void — тип, спецификатор типа и ключевое слово в языках программирования С, C++, Java, C#, Objective-C, D, ActionScript и PHP.
Среди современных языков программирования ключевое слово void
впервые появилось в C++ для поддержки концепции обобщенных указателей. Тем не менее, благодаря скорому заимствованию у C++, первым нормативным документом, содержащим это ключевое слово, стал стандарт языка Си, опубликованный ANSI в 1989 г. В рамках языка C++ void
был стандартизован в 1998 г.
В языке PHP возможность возвращать void появилась [1] с 01.12.2016 года в версии 7.1.0.
Впоследствии ключевое слово void
и связанные с ним языковые конструкции были унаследованы языками Java и C#, D.
Синтаксически, void
является одним из спецификаторов типа, входящих в более общую группу спецификаторов объявления, но в некоторых языках программирования реализован в виде оператора. Например, в языке JavaScript void
является оператором и всегда возвращает undefined
:
void expression === undefined;
Семантика ключевого слова void
не подчиняется общей семантике спецификаторов типа и зависит от способа употребления:
void f();
int f(void);
#define promote_ptr() ((void) (ptr++))
void
-указатель является обобщенным объектным указателем. void
-указатели не способны представлять значения указателей на функции. За исключением случая приведения константного null-указателя к указателю на функцию в Си, явных и неявных преобразований между void
-указателями и указателями на функции нет.Тип void
определен как неполный тип, который не может быть дополнен. Как следствие, этот тип не должен быть использован там, где допускаются только полные типы, например, в качестве типа параметра в определении функции.
До публикации первого стандарта Си в 1989 г., которая ввела в язык ключевое слово void
общепринятой практикой было объявлять функции, не возвращающие значений без использования спецификаторов типов. Хотя семантически такое объявление было эквивалентно объявлению функции, возвращающей значение типа int
, намеренно опущенные спецификаторы типа подчеркивали, что функция не возвращает никакого определенного значения. Например:
f(long l)
{
/* ... */
}
Схожим образом, определения функций, не имеющие параметров записывались с пустыми круглыми скобками:
int main()
{
/* ... */
}
В качестве обобщенного указателя использовался указатель на char. Более того, современные стандарты требуют, чтобы представление и требования по выравниванию для void
-указателей были теми же, что для указателей на char
, что означает взаимозаменяемость этих типов.
Первый стандартный диалект Си (C89), хотя уже позволял записи с ключевым словом void
, все же допускал такое использование неявного int в целях поддержки совместимости с существующим кодом. Современный диалект Си (C99) не допускает отсутствия спецификаторов типов в именах типов и объявлениях.
Показаны примеры объявления функции, возвращающей void.
void message()
void message()
void message()
void message(void)
-(void) message;
void message()
function message() : void
function message(): void
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .