void er en type , typespecifikation og nøgleord i programmeringssprogene C , C++ , Java , C# , Objective-C , D , ActionScript og PHP .
Blandt moderne programmeringssprog dukkede nøgleordet voidførst op i C++ for at understøtte konceptet med generiske pointere . Men på grund af dets hurtige lån fra C++ var det første normative dokument, der indeholdt dette nøgleord, C-standarden, udgivet af ANSI i 1989. Inden for C++-sproget voidblev den standardiseret i 1998.
Efterfølgende blev nøgleordet voidog relaterede sprogkonstruktioner arvet af Java og C#, D, PHP [1] .
Syntaktisk er det voiden af typespecifikationerne i den mere generelle gruppe af deklarationsspecificatorer , men er implementeret som en sætning i nogle programmeringssprog. For eksempel er det i JavaScript void en operator og returnerer altid undefined:
void udtryk === udefineret ;Semantikken for søgeordet er voidikke underlagt den generelle semantik for typespecifikationer og afhænger af brugen:
Typen voider defineret som en ufuldstændig type, der ikke kan udfyldes. Som en konsekvens bør denne type ikke bruges, hvor kun fulde typer er tilladt, f.eks. som en parametertype i en funktionsdefinition .
Før udgivelsen af den første C-standard i 1989, som introducerede nøgleordet void, var det almindelig praksis at erklære funktioner, der ikke returnerede værdier uden at bruge typespecifikationer. Mens en sådan erklæring var semantisk ækvivalent med at erklære en funktion, der returnerer en værdi af type int, understregede de bevidst udeladte typespecifikatorer, at funktionen ikke returnerede nogen bestemt værdi. For eksempel:
f ( lang ) _ { /* ... */ }På samme måde blev funktionsdefinitioner, der ikke havde nogen parametre, skrevet med tomme parenteser:
int main () { /* ... */ }En pointer til char blev brugt som en generisk pointer . Desuden kræver moderne standarder, at repræsentations- og tilpasningskravene for void-pointere er de samme som for pointere til char, hvilket betyder, at disse typer er udskiftelige .
Den første standarddialekt af C ( C89 ), selvom den allerede tillod notation med nøgleordet void, tillod stadig denne brug af den implicitte int for at opretholde kompatibilitet med eksisterende kode. Moderne C-dialekt ( C99 ) tillader ikke fravær af typespecifikationer i typenavne og deklarationer.
Eksempler på at erklære en funktion, der returnerer ugyldig, er vist.
Datatyper | |
---|---|
Ufortolkelig | |
Numerisk | |
Tekst | |
Reference | |
Sammensatte | |
abstrakt | |
Andet | |
relaterede emner |