recherche
  • Se connecter
  • S'inscrire
Réinitialisation du mot de passe réussie

Suivez les projets qui vous intéressent et découvrez les dernières actualités les concernant.

Maison développement back-end C Tutoriel langage C Paramètres des variables C

Paramètres des variables C

Collection 205
Lire 91674
temps de mise à jour 2016-09-11

Parfois, vous pouvez rencontrer une situation dans laquelle vous souhaitez qu'une fonction prenne un nombre variable de paramètres au lieu d'un nombre prédéfini. Le langage C apporte une solution à cette situation en vous permettant de définir une fonction qui accepte un nombre variable d'arguments en fonction de vos besoins spécifiques. 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);}

Veuillez noter que le dernier paramètre de la fonction func() est écrit sous forme de points de suspension, c'est-à-dire trois points (... Le paramètre). avant que les points de suspension soient toujours int, représente le nombre total de paramètres variables à transmettre. Pour utiliser cette fonctionnalité, vous devez utiliser le fichier d'en-tête stdarg.h, qui fournit des fonctions et des macros qui implémentent des fonctionnalités variadiques. Les étapes spécifiques sont les suivantes :

  • Définir une fonction. Le dernier paramètre est des points de suspension. Le paramètre avant les points de suspension est toujours int, qui représente le nombre de points de suspension. paramètres.

  • Créez une variable de type va_list dans la définition de la fonction, qui est définie dans le fichier d'en-tête stdarg.h.

  • Utilisez le paramètre int et la macro va_start pour initialiser la variable va_list dans une liste de paramètres. La macro va_start est définie dans le fichier d'en-tête stdarg.h.

  • Utilisez la macro va_arg et la variable va_list pour accéder à chaque élément de la liste d'arguments.

  • Utilisez la macro va_end pour nettoyer la mémoire affectée à la variable va_list.

Suivons maintenant les étapes ci-dessus pour écrire une fonction qui prend un nombre variable d'arguments et renvoie leur valeur moyenne :

#include <stdio.h>#include <stdarg.h>double average(int num,...){

    va_list valist;    double sum = 0.0;    int i;    /* 为 num 个参数初始化 valist */
    va_start(valist, num);    /* 访问所有赋给 valist 的参数 */    for (i = 0; i < num; i++)    {
       sum += va_arg(valist, int);    }    /* 清理为 valist 保留的内存 */
    va_end(valist);    return sum/num;}int main(){
   printf("Average of 2, 3, 4, 5 = %f\n", average(4, 2,3,4,5));
   printf("Average of 5, 10, 15 = %f\n", average(3, 5,10,15));}

Lorsque le code ci-dessus Une fois compilé et exécuté, il produit les résultats suivants. A noter que la fonction average() est appelée deux fois, et à chaque fois le premier paramètre représente le nombre total de paramètres variables passés. Les ellipses sont utilisées pour transmettre un nombre variable d'arguments.

Average of 2, 3, 4, 5 = 3.500000Average of 5, 10, 15 = 10.000000
Outils d'IA chauds
Undress AI Tool
Undress AI Tool

Images de déshabillage gratuites

AI Clothes Remover
AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undresser.AI Undress
Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

Stock Market GPT
Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outil populaire
Bloc-notes++7.3.1
Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6
Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac
SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)