Pointers er en af de mest magtfulde - og mest vanskelige - funktioner i C programmeringssprog . Når man arbejder med pointere , er det ofte nødvendigt at konvertere mellem forskellige typer af pegepinde . Nogle gange er det muligt at konvertere direkte fra en type til en anden , men ofte , især i komplekse programmer , kan du finde det nødvendigt at lagre en pointer , der er konverteret fra én type, men er endnu ikke blevet konverteret til en anden type pointer. I så fald skal du bruge et tomrum pointer, der repræsenterer en pointer med ingen form overhovedet. Ting du skal
C compiler
C-program
Vis Flere Instruktioner
1
erklære din void pointer. For at gøre en global eller lokal variabel eller et felt i en struktur , skriver " void * p ," på en tom linje inde i tilknyttede funktion eller struktur , eller uden for alle funktioner og strukturer for at gøre det globale . Hvis du vil tilføje et tomrum pointer argument til en funktion , skal du skrive " void * p" i funktionens argument listen. I begge tilfælde kan du udskifter bogstavet "p" med nogen variabel navn efter eget valg .
2
gemmer en værdi i din void pointer variabel. Hvis du har lavet en lokal eller global variabel , bare skrive " p = (void * ) x ; " . Erstat "X" med navnet på den indtastede pointer , du gerne vil konvertere til et tomrum pointer. Hvis du har lavet en struktur , skriv " sp = ( void * ) x ; " . Erstat "s" med navnet på strukturen og "x" med navnet på markøren . Hvis du har lavet en funktion argument , kalder funktionen sådan her: " f ( (void * ) x )" . Erstat " f" med navnet på funktionen og "x" med navnet på markøren .
3
For at læse værdien af det tomrum pointer og konvertere den tilbage i en maskinskrevet pointer skriver "x = ( Type * ) p ; ", hvor " x" er indtastet pointer, "p" er ugyldig pointer og " Type" er den oprindelige type pointer du har gemt i "p" . Vær omhyggelig med at få den type korrekt , fordi C compiler pligtskyldigt vil omdanne markøren til uanset hvilken type, du beder om , uanset om du er korrekte eller ej. Dette kan føre til subtile fejl , der er vanskelige at løse.