Pointers zijn een van de meest krachtige - en moeilijkste - kenmerken van de C -programmeertaal . Bij het werken met pointers , is het vaak noodzakelijk om te zetten tussen verschillende soorten pointers . Soms is het mogelijk om direct te converteren van het ene type naar het andere , maar vaak , vooral in complexe programma's , je kan het nodig zijn om een pointer te slaan , dat is omgezet van een type te vinden , maar is nog niet geconverteerd naar een ander type pointer . In dat geval moet u een leegte pointer , die een pointer zonder type- helemaal vertegenwoordigt gebruiken . Wat je nodig hebt C compiler C programma Toon Meer Aanwijzingen 1 Verklaar uw leegte pointer. Om een globale of lokale variabele of een veld in een structuur is , schrijf " void * p " op een lege lijn in de bijbehorende functie, structuur of buiten alle functies en structuren voor de globale maken . Om een leegte pointer argument toe te voegen aan een functie , schrijf " leegte * p " in lijst met argumenten van de functie . In beide gevallen kunt u de letter " p " te vervangen door een variabele naam van uw keuze . Store 2 een waarde in uw leegte pointer variabele . Als u een lokale of globale variabele gemaakt , gewoon schrijven " p = (void * ) x ; " . Vervang " x " met de naam van de getypte aanwijzer u wilt converteren naar een leegte pointer . Als je een structuur veld gemaakt , schrijven " sp = (void * ) x ; " . Vervang " s " de naam van de structuur en " x " de naam van de aanwijzer . Als u een functie argument gemaakt , bel dan de functie als deze : " f ( (void * ) x ) " . Vervang " f" de naam van de functie en " x " de naam van de aanwijzer . 3 de waarde van de leegte aanwijzer gelezen en terugconverteren een getypte pointer , schrijven " x = ( Type * ) p; " , waarbij " x " is de getypte pointer , " p " is de leegte pointer en " Type" is het oorspronkelijke type van de aanwijzer opgeslagen in je " p " . Wees voorzichtig om de soort te corrigeren , omdat de C compiler zal plichtsgetrouw zetten de pointer naar welk type u vragen , of u correct zijn of niet . Dit kan leiden tot subtiele bugs die moeilijk op te lossen zijn .
|