Void Pointers in C Onder de Knie: Flexibele, Efficiënte Code Ontgrendelen
In programmeertalen maken bepaalde concepten coderen veel makkelijker. Bijvoorbeeld, de void pointer bepaalt het specifieke datatype van de invoer van een eindgebruiker in de C programmeertaal. Wat ons brengt om void pointers in C te bespreken.
Zoals anderen, hebben void pointers relevante functies voor hun flexibiliteit. Maar, als je tijd wilt besparen tijdens het coderen, is je go-to pointer functie een void pointer. Deze pointer laat je een ander objecttype tegelijkertijd opslaan en ophalen. Verderop leer je alles over de coderings technieken met void pointers in C.
(Afbeelding van een programmeertaal)
1. Wat zijn Void Pointers in C?
Over het algemeen zijn void pointers pointers zonder enig gerelateerd datatype. Met andere woorden, ze zijn als lege containers. Deze functie stelt ze in staat om adressen van een type variabele van onbekend datatype te houden.
C's void pointer functie laat je ze type-casten in andere datatypes, wat eenvoudige geheugentoewijzing mogelijk maakt. Vervolgens stelt dit flexibele functies in zoals bytes in geheugentoewijzing. Verder helpen void pointers in C om generieke functies uit te voeren.
(Een eenvoudig "Hello World" programma in C programmeertaal)
https://commons.m.wikimedia.org/wiki/File:C_Hello_World_Program.png
2. Hoe Werkt Void Pointer in C?
Over het algemeen is de pointer functie essentieel voor programmeren. Tenminste, we zien het belang in adresbeheer en geheugentoewijzing.
Er zijn twee verschillende pointertypen; generieke pointers en void pointers. Onze focus is echter op void pointers en hoe ze in C werken.
Om een void pointer in C te hebben, hoef je alleen een stuk informatie te declareren met het sleutelwoord "void".
Over het algemeen spelen refereren en derefereren een rol in het generieke pointer concept. Derefereren, in dit geval, is wanneer je een waarde opvraagt die opgeslagen is in de pointer variabele.
Dus, als een pointerwaarde niet geassocieerd is met de beschikbare datatypes, heb je typecasting als optie.
Let echter op dat void pointers geen enkele rekenkundige operatie ondersteunen. In plaats daarvan gebruiken we de indirectie operator "*". Om die reden wordt het nodig om te typecasten in de afwezigheid van een geassocieerd datatype. Typecasting relieert dus het gedeclareerde datatype naast de void pointer. Anders toont het uitvoeren van het programma een compilerfout.
De void grootte is vergelijkbaar met een character pointer in C. Het grootteobject varieert afhankelijk van het pointerplatform.
Deze geheugenbeheersfuncties zijn malloc() en calloc(). In teruggave helpen deze functies geheugen van het benodigde datatype toe te wijzen. Op een manier gebruikt geheugentoewijzing een formaat dat de functiepointer laat verbeteren.
(Een schematische illustratie van hoe pointers in C werken).
https://commons.m.wikimedia.org/wiki/File:C_pointer_3.svg
3. Syntaxis van Void Pointer
Gewoonlijk is het het beste om de juiste syntaxis te gebruiken om een programmeerfunctie te importeren. Daarom is de syntaxis van een void pointer in C:
Void *pointer_naam;
Waarbij "void" het sleutelwoord is van het type pointer. Dus hebben we de naam van de pointer waaraan we wijzen en een adres toewijzing geven.
Laten we het onderstaande voorbeeld nemen:
int b = 6
char c = 'z';
Daarom, in een geval waar we een void pointer variabele opnemen, hebben we:
Void *p = &b; // void pointer reserveert en houdt int 'b' als adres van integer.
P = &c; // void pointer houdt ook char 'c' adres.
Gaandeweg, laten we enkele syntaxisvoorbeelden benadrukken:
int i=6; // initialisatie van integer variabele.
int *p; // integer pointer declaratie.
void *ptr; // void pointer declaratie.
float *fp; // drijvende pointer declaratie.
p=fp; // ongeldige pointer.
ptr=p; // geldige pointer.
fp=&i; // ongeldige pointer.
ptr=&i; // geldige pointer.
ptr=fp; // geldige pointer.
4. Enkele Voorbeelden van Void Pointers in C Met Voorbeeldcodes
Verder kijken we naar een voorbeeld van void pointer argumenten in de onderstaande code snippet:
Voorbeeldcode #1
In de eerste van onze codevoorbeelden laten we zien hoe de malloc() functie te gebruiken, dus:
#include <stdio.h>
#include<malloc.h>
int main()
{
int a=90;
int *x = (int*)malloc(sizeof(int)) ;
x=&a;
printf("pointed value by x pointer : %d",*x);
return 0;
}
Output
Voorbeeldcode #2
In deze volgende code laten we het typecasting concept zien.
#include <stdio.h>
int main()
{
void *ptr = NULL; //void pointer variabele
int *p = NULL;// integer pointer variabele
char *cp = NULL;//karakter pointer variabele
float *fp = NULL;//float pointer variabele
//void pointer grootte
printf("void pointer size = %d\n\n",sizeof(ptr));
//integer pointer grootte
printf("integer pointer size = %d\n\n",sizeof(p));
//char pointer grootte
printf("character pointer size = %d\n\n",sizeof(cp));
//float pointer grootte
printf("float pointer size = %d\n\n",sizeof(fp));
return 0;
}
Output
Overigens, zie de bijgevoegde videolink hieronder over void pointer codes in C programmeren.
https://youtu.be/-503stjWLhc
5. Gebruik van void pointer
Bij lange na, heeft de void pointer een enorme relevantie in C taal programmeren.
- Ze helpen wijzen naar variabelen van elk datatype.
Voor beter begrip, zie het onderstaande codevoorbeeld. Sommige van hen omvatten:
#include<stdio.h>
void main()
{
int num=10;//Initialiseert een normale variabele
void *ptr;//Declareren de void pointer
ptr=#//Richt Ptr pointer naar num
printf("De waarde van integer variabele is= %d",*ptr );
}
Echter, het uitvoeren van deze code resulteert in een compileerfout. Als je typecasting gebruikt op dezelfde code om de pointer te derefereren, krijg je de gewenste output, dus:
#include<stdio.h>
void main()
{
int num=10;//Initialiseert een normale variabele
void *ptr;//Declareren de void pointer
ptr=#//Richt Ptr pointer naar num
printf("De integer variabele waarde is %d", *(int*)ptr );// Derefereren met typecasting
}
De integer variabele waarde is 10.
Daarom, door typecasting, kunnen we void pointers derefereren.
Dus, hoewel pointerrekenkunde ongeldig is met void pointers, lost typecasting dat probleem op. De output wordt:
(Void pointer maakt coderen makkelijker door de locatie van datavariabelen te onthullen)
- Met calloc() en malloc(), helpt de void pointer geheugenlocatie toe te wijzen voor alle datatypes.
Om te illustreren, zie de onderstaande code:
int main(void)
{
// Let op dat de malloc() functie void * retourneert
// Vervolgens, type-cast naar elk datatype zoals char *, int *,…
int *x = malloc(sizeof(int) * n);
}
Van nota, het bovenstaande programma compileert alleen in C.
- Laatst maar niet minst, helpt de void pointer variabele generieke functies in C te implementeren.
Conclusie
De void pointer functie is een essentieel programmeerhulpmiddel, in het algemeen. Programmeurs vinden het nuttig omdat er geen datatypes geassocieerd zijn met het. Tenminste, het elimineert de verwarring van pointers die verschillende waarden en dataklassen naar elkaar wijzen. Daarom verminderen void pointers overbodige typecasting. Het ondersteunt generieke pointertype data, ook. Daarom is het ook een generieke-doel compiler.
Je hebt een complete gids over het werken met void pointers in c. Echter, als je vragen hebt of andere programmeerhulpbronnen nodig hebt, is onze contactpagina altijd beschikbaar.
Industriële technologie
- Voordelen van een Mechanische IJzerwerker voor Precisie Metaalbewerking
- Kleine servopers ontdekken: precisie metaalvorming op maat
- Waarom een 5-as bewerkingscentrum essentieel is voor moderne productie
- Waarom Drankrobots Essentieel Zijn voor de Moderne Horeca
- Waarom digitalisering van industriële documentatie essentieel is voor moderne productie
- Waarom een Andon-systeem essentieel is voor Lean Manufacturing-succes
- 10 Belangrijkste Voordelen van Waterstraalsnijden voor Uw Bedrijf
- Energiebesparing ontgrendelen: de cruciale rol van luchtenergie-audits voor gecomprimeerde lucht systemen
- Koppelbegrenzers Uitgelegd: Machines Beschermen en Veilige Operaties Zorgen
- Hydraulische klemmen: sleutel tot industriële veiligheid & efficiëntie
- Waarom Uw Fabricagewinkel Een Plasma Snijtafel Nodig Heeft – 4 Belangrijkste Voordelen