void je typ , specifikátor typu a klíčové slovo v programovacích jazycích C , C++ , Java , C# , Objective-C , D , ActionScript a PHP .
Mezi moderními programovacími jazyky se klíčové slovo voidpoprvé objevilo v C++, aby podpořilo koncept generických ukazatelů . Vzhledem k jeho rychlému přebírání z C++ byl však prvním normativním dokumentem obsahujícím toto klíčové slovo standard C, publikovaný ANSI v roce 1989. V rámci jazyka C++ voidbyl standardizován v roce 1998.
Následně klíčové slovo voida související jazykové konstrukty zdědila Java a C#, D, PHP [1] .
Syntakticky je to voidjeden ze specifikátorů typu v obecnější skupině specifikátorů deklarací , ale v některých programovacích jazycích je implementován jako příkaz. Například v JavaScriptu void je to operátor a vždy vrací undefined:
void výraz === nedefinováno ;Sémantika klíčového slova voidnepodléhá obecné sémantice specifikátorů typu a závisí na použití:
Typ voidje definován jako neúplný typ, který nelze dokončit. V důsledku toho by se tento typ neměl používat tam, kde jsou povoleny pouze úplné typy, jako je typ parametru v definici funkce .
Před vydáním prvního standardu C v roce 1989, který zavedl klíčové slovo void, bylo běžnou praxí deklarovat funkce, které nevracely hodnoty, bez použití specifikátorů typu. Zatímco taková deklarace byla sémanticky ekvivalentní deklaraci funkce vracející hodnotu typu int, záměrně vynechané specifikátory typu zdůrazňovaly, že funkce nevrací žádnou konkrétní hodnotu. Například:
f ( longl ) _ { /* ... */ }Podobně definice funkcí, které neměly žádné parametry, byly zapsány s prázdnými závorkami:
int main () { /* ... */ }Jako obecný ukazatel byl použit ukazatel na char . Moderní standardy navíc vyžadují, aby požadavky na reprezentaci a zarovnání pro void-pointery byly stejné jako pro ukazatele na char, což znamená, že tyto typy jsou zaměnitelné .
První standardní dialekt C ( C89 ), ačkoli již umožňoval zápis pomocí klíčového slova void, stále umožňoval použití implicitního int , aby byla zachována kompatibilita s existujícím kódem. Moderní dialekt C ( C99 ) neumožňuje absenci specifikátorů typu v názvech a deklaracích typů.
Jsou uvedeny příklady deklarace funkce, která vrací void.
Typy dat | |
---|---|
Neinterpretovatelné | |
Numerický | |
Text | |
Odkaz | |
Kompozitní | |
abstraktní | |
jiný | |
související témata |