Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Maîtriser les arguments variables en C : Guide pratique

Il arrive parfois qu'on veuille une fonction capable d'accepter un nombre variable d'arguments (paramètres) au lieu d'un nombre prédéfini. Le langage C offre une solution pour cette situation : vous pouvez définir une fonction acceptant un nombre variable de paramètres selon vos besoins. L'exemple suivant montre la définition d'une telle fonction :

int func(int, ... ) {
  ...
}
int main() {
  func(1, 2, 3);
  func(1, 2, 3, 4);
}

Il faut noter que la fonction func() a son dernier argument sous forme de points de suspension (trois points ...) et que l'argument juste avant les points de suspension est toujours un int qui représentera le nombre total d'arguments variables passés. Pour utiliser cette fonctionnalité, vous devez utiliser le fichier d'en-tête stdarg.h qui fournit les fonctions et macros pour implémenter les arguments variables, et suivre les étapes suivantes :

Suivons ces étapes et écrivons une fonction simple qui prend un nombre variable de paramètres et renvoie leur moyenne :

Démonstration en direct
#include <stdio.h>
#include <stdarg.h>
double moyenne(int nb, ...) {
  va_list liste_args;
  double somme = 0.0;
  int i;
  /* initialiser liste_args pour nb arguments */
  va_start(liste_args, nb);
  /* accéder à tous les arguments assignés à liste_args */
  for (i = 0; i < nb; i++) {
    somme += va_arg(liste_args, int);
  }
  /* nettoyer la mémoire réservée pour liste_args */
  va_end(liste_args);
  return somme / nb;
}
int main() {
  printf("Moyenne de 2, 3, 4, 5 = %f\n", moyenne(4, 2, 3, 4, 5));
  printf("Moyenne de 5, 10, 15 = %f\n", moyenne(3, 5, 10, 15));
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant. Notez que la fonction moyenne() a été appelée deux fois et que chaque fois le premier argument représente le nombre total d'arguments variables passés. Seuls les points de suspension sont utilisés pour passer un nombre variable d'arguments.

Moyenne de 2, 3, 4, 5 = 3.500000
Moyenne de 5, 10, 15 = 10.000000

Langue C

  1. Quatre modèles éprouvés pour les fonctions définies par l'utilisateur en C
  2. Comprendre les classes de stockage en C : Portée, durée de vie et performance
  3. Comment passer des tableaux 1D et 2D aux fonctions en C – Guide pratique
  4. Maîtriser les arguments de fonctions Python : Positionnels, nommés et paramètres par défaut
  5. Variables et types de données en C++ : Guide expert sur int, double, char, string, bool
  6. Variables C, types de données et constantes – Guide pratique
  7. Comprendre les affectations Verilog : Types, Syntaxe et Bonnes Pratiques
  8. Comprendre les variables en C : Types, règles de nommage et gestion mémoire
  9. Maîtriser les fonctions en C : Structure, déclaration et bonnes pratiques