Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

Maîtriser les Pointeurs Void en C : Débloquer un Code Flexible et Efficace

Dans les langages de programmation, certains concepts rendent le codage beaucoup plus facile. Par exemple, le pointeur void détermine le type de données spécifique à partir des entrées d'un utilisateur final dans le langage de programmation C. D'où notre discussion sur les pointeurs void en C.

Comme les autres, les pointeurs void ont des fonctions pertinentes pour leur flexibilité. Mais si vous voulez gagner du temps en codant, votre fonction de pointeur de prédilection est un pointeur void. Ce pointeur vous permet de stocker et récupérer simultanément un type d'objet différent. Plus loin, vous apprendrez toutes les techniques de codage impliquant les pointeurs void en C.

Maîtriser les Pointeurs Void en C : Débloquer un Code Flexible et Efficace

(Image d'un langage de programmation)

1. Que sont les Pointeurs Void en C?

Généralement, les pointeurs void sont des pointeurs sans aucun type de données associé. En d'autres termes, ils sont comme des conteneurs vides. Cette caractéristique leur permet de contenir des adresses d'une variable de type de données inconnu.

La fonction de pointeur void en C vous permet de les caster en d'autres types de données, permettant une allocation mémoire facile. Par la suite, cela permet des fonctions flexibles comme les octets dans l'allocation mémoire. De plus, les pointeurs void en C aident à réaliser des fonctions génériques.

Maîtriser les Pointeurs Void en C : Débloquer un Code Flexible et Efficace

(Un simple programme "Hello World" en langage C)

https://commons.m.wikimedia.org/wiki/File:C_Hello_World_Program.png

2. Comment Fonctionne un Pointeur Void en C ?

Dans l'ensemble, la fonction de pointeur est essentielle pour la programmation. Au moins, nous voyons son importance dans la gestion d'adressage et l'allocation mémoire.

Il existe deux types de pointeurs différents ; pointeurs génériques et pointeurs void. Notre focus, cependant, est sur les pointeurs void et comment ils fonctionnent en C.

Pour avoir un pointeur void en C, vous n'avez qu'à déclarer une information avec le mot-clé "void".

Dans l'ensemble, le référencement et la déréférencement jouent un rôle dans le concept de pointeur à usage général. La déréférencement, dans ce cas, est lorsque vous obtenez une valeur stockée dans la variable pointeur.

Donc, si une valeur de pointeur n'est pas associée aux types de données disponibles, vous avez le cast de type comme option.

Cependant, notez que les pointeurs void ne supportent aucune opération arithmétique. Au lieu de cela, nous utilisons l'opérateur d'indirection "*". Pour cette raison, il devient nécessaire de caster en l'absence d'un type de données associé. Le cast de type relie donc le type de données déclaré aux côtés du pointeur void. Sinon, l'exécution du programme affiche une erreur de compilation.

La taille du void est similaire à un pointeur de caractère en C. L'objet de taille varie selon la plateforme du pointeur.

Ces fonctions de gestion mémoire sont malloc() et calloc(). En retour, ces fonctions aident à allouer la mémoire du type de données nécessaire. D'une certaine manière, l'allocation mémoire utilise un format qui permet au pointeur de fonction d'améliorer d'autres fonctionnalités.

Maîtriser les Pointeurs Void en C : Débloquer un Code Flexible et Efficace

(Une illustration picturale de comment les pointeurs fonctionnent en C).

https://commons.m.wikimedia.org/wiki/File:C_pointer_3.svg

3. Syntaxe du Pointeur Void

Généralement, il serait préférable d'utiliser la bonne syntaxe pour importer toute fonction de programmation. Par conséquent, la syntaxe d'un pointeur void en C est :

void *nom_pointeur;

Où "void" est le mot-clé du type de pointeur. Donc, nous avons le nom du pointeur vers lequel nous pointons et donnons une allocation d'adresse.

Prenons l'exemple ci-dessous :

int b = 6
char c = 'z';

Par conséquent, dans un cas où nous incluons une variable pointeur void, nous avons :

void *p = &b; // pointeur void alloue et tient int 'b' comme adresse d'entier.
p = &c; // pointeur void tient aussi l'adresse du char 'c'.

Allons plus loin, soulignons quelques exemples de syntaxe :

int i=6; // initialisation de variable entière.
int *p; // déclaration pointeur entier.
void *ptr; // déclaration pointeur void.
float *fp; // déclaration pointeur flottant.
p=fp; // pointeur invalide.
ptr=p; // pointeur valide.
fp=&i; // pointeur invalide.
ptr=&i; // pointeur valide.
ptr=fp; // pointeur valide.

4. Quelques Exemples de Pointeurs Void en C Avec Exemples de Code

Passons maintenant à un exemple d'arguments de pointeur void dans l'extrait de code ci-dessous :

Exemple de code #1

Dans le premier de nos exemples de code, nous montrons comment utiliser la fonction malloc(), ainsi :

#include <stdio.h>
#include<malloc.h>
int main()
{
int a=90;
int *x = (int*)malloc(sizeof(int)) ;
x=&a;
printf("valeur pointée par le pointeur x : %d",*x);
return 0;
}

Sortie

Exemple de code #2

Dans ce code suivant, nous montrons le concept de cast de type.

#include <stdio.h>
int main()
{
void *ptr = NULL; //variable pointeur void
int *p = NULL;// variable pointeur entier
char *cp = NULL;//variable pointeur caractère
float *fp = NULL;//variable pointeur flottant
//taille pointeur void
printf("taille pointeur void = %d\n\n",sizeof(ptr));
//taille pointeur entier
printf("taille pointeur entier = %d\n\n",sizeof(p));
//taille pointeur char
printf("taille pointeur caractère = %d\n\n",sizeof(cp));
//taille pointeur float
printf("taille pointeur flottant = %d\n\n",sizeof(fp));
return 0;
}

Sortie

Sinon, voir le lien vidéo ci-dessous sur les codes de pointeur void en programmation C.

https://youtu.be/-503stjWLhc

5. Utilisations du Pointeur Void

De loin, le pointeur void a une grande pertinence dans la programmation en langage C.

Pour une meilleure compréhension, voir l'exemple de code ci-dessous. Certains d'entre eux incluent :

#include<stdio.h>
void main()
{
int num=10;//Initialise une variable normale
void *ptr;//Déclare le pointeur void
ptr=#//Dirige le pointeur Ptr vers num
printf("La valeur de la variable entière est= %d",*ptr );
}

Cependant, l'exécution de ce code entraîne une erreur de compilation. Si vous utilisez le cast de type sur le même code pour déréférencer le pointeur, vous obtenez la sortie désirée, ainsi :

#include<stdio.h>
void main()
{
int num=10;//Initialise une variable normale
void *ptr;//Déclare le pointeur void
ptr=#//Dirige le pointeur Ptr vers num
printf("La valeur de la variable entière est %d", *(int*)ptr );// Déreférencement en utilisant le cast de type
}

La valeur de la variable entière est 10.

Par conséquent, en castant le type, nous pouvons déréférencer les pointeurs void.

Ainsi, bien que l'arithmétique de pointeur soit invalide avec les pointeurs void, le cast de type aide à résoudre ce problème. La sortie devient :

Maîtriser les Pointeurs Void en C : Débloquer un Code Flexible et Efficace

(Les pointeurs void facilitent le codage en révélant l'emplacement des variables de données)

Pour illustrer, voir le code ci-dessous :

int main(void)
{
// Notez que la fonction malloc() retourne void *
// Ensuite, caster vers n'importe quel type de données tel que char *, int *,...
int *x = malloc(sizeof(int) * n);
}

À noter, le programme ci-dessus compile en C seulement.

Conclusion

La fonction de pointeur void est un outil de programmation essentiel, en général. Les programmeurs le trouvent utile car il n'y a pas de types de données associés. Au moins, cela élimine la confusion des pointeurs dirigeant différentes valeurs et classes de données les uns vers les autres. Donc, les pointeurs void réduisent le cast de type excessif. Il supporte le type de données pointeur générique, aussi. Par conséquent, c'est aussi un compilateur à usage générique.

Vous avez un guide complet sur le travail avec les pointeurs void en C. Cependant, si vous avez des questions ou avez besoin d'autres ressources de programmation, notre page de contact est toujours disponible.


Technologie industrielle

  1. Débloquez les économies d'énergie : Le rôle crucial des audits énergétiques d'air pour les systèmes d'air comprimé
  2. Limiteurs de couple : protection machines et opérations sûres expliqués
  3. Pinces hydrauliques : clé de la sécurité et de l'efficacité industrielles
  4. Pourquoi la numérisation de la documentation industrielle est essentielle pour la fabrication moderne
  5. Pourquoi le système Andon est essentiel pour réussir le Lean Manufacturing
  6. Pourquoi votre atelier de fabrication a besoin d'une table de découpe plasma — 4 avantages clés
  7. 10 Avantages Clés de la Coupe Jet d'Eau pour Votre Entreprise
  8. Avantages de l'utilisation d'une cisaille poinçonneuse mécanique pour la fabrication de précision des métaux
  9. Découvrir les avantages des petites presses servo pour le formage de précision des métaux