Fonction surcharge en C

Fonction surcharge en C
La surcharge de fonction est un concept très connu utilisé dans les langues orientées objet ayant de nombreuses fonctions avec le même nom et différents paramètres dans un seul code. Les langages de programmation orientés objet qui prennent en charge la surcharge des fonctions incluent Java et C++. Comme le compilateur C ne lui permet pas d'être utilisé dans le code, il n'est donc pas facile d'implémenter la surcharge de fonctions en C. Encore; Nous pouvons toujours réaliser la même chose avec une technique. Commençons cet article avec l'ouverture du terminal de la coquille d'Ubuntu 20.04 LTS.

Conditions préalables

  • Installer Ubuntu 20.04 LTS
  • Installer le compilateur GCC
  • Obtenez l'accès aux droits sudo

Exemple 01: surcharge de fonction en C

Commençons notre premier exemple pour voir comment la surcharge de fonction échoue simplement dans le langage C. Nous devons utiliser l'instruction «Touch» dans le shell terminal pour créer un nouveau document de type C. Pour ouvrir ce nouveau fichier, vous avez besoin d'un éditeur de fichiers. Nous avons utilisé l'éditeur «GNU Nano» pour l'ouvrir.

Exécutez les instructions apposées suivantes pour commencer.

$ TOCK TEST.c
$ test nano.c

Après avoir lancé le fichier dans un éditeur, nous avons inclus car nous avons défini deux en-têtes standard-entrées définies par l'utilisateur. Après l'en-tête, nous avons défini deux méthodes définies par l'utilisateur avec un nom similaire et différents paramètres, je.e., "Cal". La première méthode définie par l'utilisateur, «Cal» prend 1 argument de type entier, tandis que l'autre méthode «Cal» prend deux arguments de type entier. La première fonction a simplement été de multiplier la valeur entière pas passée avec elle-même et de l'enregistrer à une autre variable de type entier, «T» qui vient d'être initialisé.

Après cela, la valeur calculée serait affichée dans le shell via l'instruction «printf» utilisée à l'intérieur. L'autre fonction prend deux valeurs entières dans son argument et utilise les valeurs passées pour calculer le total en multipliant les deux. Les valeurs calculées seraient imprimées dans le shell selon l'instruction «printf».

Dans la méthode principale (), nous avons appelé les deux méthodes les unes après les autres. La première méthode a été appelée tout en ayant 1 valeur entière paramétrique. L'autre fonction du même nom a été appelée en passant deux valeurs de type entier dans ses paramètres. La méthode principale est fermée ici.

Enregistrer ce code et quitter le fichier. Utilisez le package du compilateur «GCC» pour compiler le code et voir les erreurs de surcharge de fonction. La commande a été donnée dans la sortie de l'image ci-dessous. Vous pouvez voir que la compilation de ce fichier lance de nombreuses exceptions en raison du même nom de fonctions.

Exécutez l'instruction apposée suivante.

$ test gcc.c

Exemple 02: Alternative à la surcharge des fonctions

Dans cet exemple, nous vous informerons de la méthode alternative d'implémentation de la surcharge des fonctions. Nous avons de nouveau ouvert le même fichier et ajouté trois packages d'en-tête en haut avec #include mot-clé. Nous avons défini deux fonctions définies par l'utilisateur du même nom avec un seul changement de caractère en eux. Les deux noms de fonction commencent par «cal».

La première méthode a été de prendre deux valeurs de type entier comme argument dans ses paramètres. Tandis que l'autre a pris deux pointeurs de type caractéristiques comme argument dans ses paramètres. La première méthode «Cal» a été de prendre ces deux valeurs entières et de les additionner ensemble. Les valeurs calculées seraient renvoyées à la méthode principale. D'un autre côté, l'autre méthode «Cal» a initialisé un autre pointeur de type de caractère, «Z».

La méthode strlen () est appliquée aux deux variables de chaîne pour obtenir des longueurs, et la méthode malloc () a été appliquée à la longueur pour obtenir la taille de la mémoire. Le pointeur «z» a obtenu la mémoire via la méthode malloc () car il doit stocker la valeur de la chaîne. La méthode Strcpy () est utilisée pour copier la valeur de chaîne de la variable du pointeur «x» en «z». Tandis que la méthode strcat () est utilisée pour ajouter la valeur de la variable du pointeur «y» à la fin de «z». La valeur mise à jour de «z» a été renvoyée à la méthode principale (). Nous avons défini la déclaration de fonction avec le mot-clé «_generic».

La méthode principale () déclare deux variables entières à transmettre à la première méthode «cal ()». Deux pointeurs de caractères ont été initialisés avec des valeurs de chaîne et transmis à la deuxième méthode «cal ()».

Compilé le code avec le package «gcc». Lors de l'exécution de ce code, nous avons obtenu la somme de deux entiers et la chaîne concaténée.

Exécutez les instructions apposées suivantes pour commencer.

$ gcc nouveau.c
$ ./un.dehors

Conclusion:

Ce guide contient l'illustration de l'utilisation d'une méthode alternative de surcharge de fonction en C. Nous avons couvert l'exemple pour voir comment la surcharge de la fonction échoue en C et comment le terme _ageric peut nous sauver. Si vous avez suivi ce guide avec soin, vous pourriez facilement effectuer la surcharge de fonctions en C à partir de maintenant. Nous espérons que vous trouverez cet article le mieux.