A void egy típus , típusmeghatározó és kulcsszó a C , C++ , Java , C# , Objective-C , D , ActionScript és PHP programozási nyelvekben .
A modern programozási nyelvek közül a kulcsszó voidelőször a C++ nyelven jelent meg, hogy támogassa az általános mutatók koncepcióját . A gyors C++-ból való kölcsönzés miatt azonban az első normatív dokumentum, amely ezt a kulcsszót tartalmazza, a C szabvány volt, amelyet az ANSI adott ki 1989-ben. A C++ nyelven belül void1998-ban szabványosították.
Ezt követően a kulcsszót voidés a kapcsolódó nyelvi konstrukciókat a Java és a C#, D, PHP [1] örökölte .
Szintaktikailag ez az egyik típusleíró a deklarációs specifikátorokvoid általánosabb csoportjában , de egyes programozási nyelveken utasításként implementálják. Például a JavaScriptben ez egy operátor, és mindig a következőt adja vissza : voidundefined
void kifejezés === undefined ;A kulcsszó szemantikája voidnem vonatkozik a típusmeghatározók általános szemantikájára, és a használattól függ:
A típus voidegy hiányos típusként van definiálva, amely nem fejezhető be. Következésképpen ezt a típust nem szabad használni ott, ahol csak a teljes típusok engedélyezettek, például egy paramétertípus egy függvénydefinícióban .
Az első C-szabvány 1989-es kiadása előtt, amely bevezette a kulcsszót void, általános gyakorlat volt olyan függvények deklarálása, amelyek nem adtak vissza értékeket típusleírók használata nélkül. Míg egy ilyen deklaráció szemantikailag egyenértékű volt egy type értéket visszaadó függvény deklarálásával int, a szándékosan kihagyott típusleírók hangsúlyozták, hogy a függvény nem ad vissza semmilyen értéket. Például:
f ( longl ) _ { /* ... */ }Hasonlóképpen, a paraméterekkel nem rendelkező függvénydefiníciókat üres zárójelekkel írtuk:
int main () { /* ... */ }A char mutatót általános mutatóként használták . Ezen túlmenően a modern szabványok megkövetelik, hogy a -pointerek ábrázolási és igazításivoid követelményei ugyanazok legyenek, mint a -ra mutatók esetében char, ami azt jelenti, hogy ezek a típusok felcserélhetők .
A C első szabványos dialektusa ( C89 ), bár már lehetővé tette a jelölést a kulcsszóval void, mégis lehetővé tette az implicit int használatát , hogy fenntartsa a kompatibilitást a meglévő kóddal. A modern C dialektus ( C99 ) nem teszi lehetővé a típusmeghatározók hiányát a típusnevekben és a deklarációkban.
Példák láthatók egy érvénytelent visszaadó függvény deklarálására.
Adattípusok | |
---|---|
Értelmezhetetlen | |
Numerikus | |
Szöveg | |
Referencia | |
Összetett | |
absztrakt | |
Egyéb | |
Kapcsolódó témák |