Void

Void

void

voidтип, спецификатор типа и ключевое слово в языках программирования Си, Си++, Java, C# и D, заимствованное у их общего предшественника Алгола 68.

Содержание

История

Среди современных языков программирования ключевое слово void впервые появилось в Си++ для поддержки концепции обобщенных указателей. Тем не менее, благодаря скорому заимствованию у Си++, первым нормативным документом, содержащим это ключевое слово стал стандарт языка Си, опубликованный ANSI в 1989г. В рамках языка Си++ void был стандартизован в 1998г.

Впоследствии ключевое слово void и связанные с ним языковые конструкции были унаследованы языками Java и C#, D.

Синтаксис

Синтаксически, void является одним из спецификаторов типа, входящих в более общую группу спецификаторов объявления.

Семантика

Семантика ключевого слова void не подчиняется общей семантике спецификаторов типа и зависит от способа употребления:

  • В качестве имени типа значения, возвращаемого функцией: указывает на то, что функция не возвращает значения, а вызов такой функции является void-выражением. Тело такой функции не должно содержать операторов return с выражениями. Например:
    void f();
    
  • В составе декларатора функции: указывает на то, что функция имеет прототип и не имеет параметров. Например:
    int f(void);
    
  • В качестве имени целевого типа операции приведения: такое void-приведение означает отказ от значения приводимого выражения. Например:
    #define promote_ptr() ((void) (ptr++))
    
  • В составе имени типа void-указателя: такой указатель способен представлять значения любых указателей на объектные и неполные типы, т.е. адреса любых объектов. Таким образом, void-указатель является обобщенным объектным указателем. void-указатели не способны представлять значения указателей на функции. За исключением случая приведения константного null-указателя к указателю на функцию в Си, явных и неявных преобразований между void-указателями и указателями на функции нет.

Тип void определен как неполный тип, который не может быть дополнен. Как следствие, этот тип не должен быть использован там, где допускаются только полные типы, например, в качестве типа параметра в определении функции.

Язык Си до введения void

До публикации первого стандарта Си в 1989г., которая ввела в язык ключевое слово void общепринятой практикой было объявлять функции, не возвращающие значений без использования спецификаторов типов. Хотя семантически такое объявление было эквивалентно объявлению функции, возвращающей значение типа int, намеренно опущенные спецификаторы типа подчеркивали, что функция не возвращает никакого определенного значения. Например:

f(long l)
{
    /* ... */
}

Схожим образом, определения функций, не имеющие параметров записывались с пустыми круглыми скобками:

int main()
{
    /* ... */
}

В качестве обобщенного указателя использовался указатель на char. Более того, современные стандарты требуют, чтобы представление и требования по выравниванию для void-указателей были теми же, что для указателей на char, что означает взаимозаменяемость этих типов.

Первый стандартный диалект Си (C89), хотя уже позволял записи с ключевым словом void, все же допускал такое использование неявного int в целях поддержки совместимости с существующим кодом. Современный диалект Си (C99) не допускает отстутсвия спецификаторов типов в именах типов и объявлениях.

Примеры

C++

  
#include <stdio.h>
    void main()
    {
      printf("Привет!\n");
    }
  

Java

  
    void message(){
      System.out.println("Привет!");
    }
  

C

  
    void message(void)
    {
      printf("Привет!");
    }
  

D

  
    void message()
    {   writefln("Привет!");
    }
  

Ссылки


Wikimedia Foundation. 2010.

Смотреть что такое "Void" в других словарях:

  • void — 1 / vȯid/ adj 1: of no force or effect under law a void marriage 2: voidable void·ness n void 2 vt: to make or declar …   Law dictionary

  • Void — may refer to:In fiction: * Void (comics), character from WildC.A.T.S. * Void ( Mortal Kombat ), a fictional location or realm in Mortal Kombat * Void , one of the minor villains in Sonic the Hedgehog * Void 1.1, a science fiction wargame created… …   Wikipedia

  • Void —  Pour la commune française, voir Void Vacon. En programmation, void est un mot clé que l on retrouve dans le langage C et plusieurs autres langages de programmation dont il est à l origine, comme le C++, le C# ou le Java. Ce mot clé void… …   Wikipédia en Français

  • Void — Void, a. [OE. voide, OF. voit, voide, vuit, vuide, F. vide, fr. (assumed) LL. vocitus, fr. L. vocare, an old form of vacare to be empty, or a kindred word. Cf. {Vacant}, {Avoid}.] 1. Containing nothing; empty; vacant; not occupied; not filled.… …   The Collaborative International Dictionary of English

  • void — [vɔɪd] adjective LAW a contract or agreement that is void has no legal effect because it is against the law: • Under state law, a contract to pay money knowingly lent for gambling is void. void verb [transitive] : • Mr. Mullen s termination… …   Financial and business terms

  • Void — Void, v. t. [imp. & p. p. {Voided}; p. pr. & vb. n. {Voiding}.] [OF. voidier, vuidier. See {Void}, a.] 1. To remove the contents of; to make or leave vacant or empty; to quit; to leave; as, to void a table. [1913 Webster] Void anon her place.… …   The Collaborative International Dictionary of English

  • Void — steht für: Void (Astronomie), eine astronomische Struktur mit sehr wenig Materie und damit sehr geringer Dichte Void (Verbindungstechnik) Void (Schlüsselwort), ein Schlüsselwort in einigen Programmiersprachen Void Vacon, eine französische… …   Deutsch Wikipedia

  • void — [adj1] empty abandoned, bare, barren, bereft, clear, deprived, destitute, devoid, drained, emptied, free, lacking, scant, short, shy, tenantless, unfilled, unoccupied, vacant, vacuous, without; concepts 481,583,740,774 Ant. filled, full, occupied …   New thesaurus

  • void — [void] adj. [ME voide < OFr vuide < VL * vocitus, for L vocivus, var. of vacivus < vacare, to be empty] 1. not occupied; vacant: said of benefices, offices, etc. 2. a) holding or containing nothing b) devoid or destitute (of) [void of… …   English World dictionary

  • VOiD — es una forma de diseñar un sistema operativo en ausencia de kernel. El antikernel VOiD fue diseñado por un joven hacker llamado Matias Leiva. Consiste en un grupo de cells cargadas dinámicamente, su comportamiento es totalmente descentralizado.… …   Wikipedia Español



Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.