begin process at 2012 02 08 21:42:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriaux

 > TUTORIAL SUR L'UTILISATION DU TYPE VA_LIST

TUTORIAL SUR L'UTILISATION DU TYPE VA_LIST


 Information sur la source

Note :
3 / 10 - par 2 personnes
3,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Tutoriaux Niveau :Initié Date de création :05/06/2002 Date de mise à jour :05/06/2002 08:08:01 Vu :11 476

Auteur : guguy

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Ce code calcule une somme avec une fonction à nombre indéterminé d'arguments et grâce au type va_list.
Ce n'est sans doute pas la meilleur manière pour ce type de calcule (il y a mieux et plus simple), cependant le type va_list est utile dans bien d'autres cas.

Source

  • /* Tutorial sur l'utilisation du type va_list par Tanguy Moret*/
  • /* Code sous license GPL */
  • #include <iostream>
  • #include <stdarg.h> // va_list
  • double somme(int compte, ...);
  • static int compte=3;
  • int main()
  • {
  • double *nombres = new double[compte]; // On crée un tableau de 3 double
  • cout << "Calcule de la somme de " << compte << " nombres a l'aide du type va_list\n";
  • cin >> nombres[0] >> nombres[1] >> nombres[2];
  • cout << "\nSomme : " << somme(compte, nombres[0], nombres[1], nombres[2]);
  • delete[] nombres; // On détruit le tableau
  • }
  • double somme(int compte, ...) {
  • double resultat=0;
  • va_list varg; // Variable stockant la somme
  • va_start(varg, compte); // On initialise la variable
  • do {
  • resultat=resultat+va_arg(varg, double); // On fais la somme
  • compte--;
  • }while(compte!=0);
  • va_end(varg); // On détruit la variable
  • return resultat;
  • }
/* Tutorial sur l'utilisation du type va_list par Tanguy Moret*/
/* Code sous license GPL */

#include <iostream>
#include <stdarg.h> // va_list

double somme(int compte, ...);
static int compte=3;

int main()
{
double *nombres = new double[compte]; // On crée un tableau de 3 double
cout << "Calcule de la somme de " << compte << " nombres a l'aide du type va_list\n";
cin >> nombres[0] >> nombres[1] >> nombres[2];
cout << "\nSomme : " << somme(compte, nombres[0], nombres[1], nombres[2]);
delete[] nombres; // On détruit le tableau
}

double somme(int compte, ...) {
double resultat=0;
va_list varg; // Variable stockant la somme
va_start(varg, compte); // On initialise la variable
do {
resultat=resultat+va_arg(varg, double); // On fais la somme
compte--;
}while(compte!=0);
va_end(varg); // On détruit la variable
return resultat;
}



 Sources du même auteur

CALCULE DU NOMBRE DE DIAGONALES D'UN POLYGONE EN FONCTION DU...
NOMBRE DE LIGNE DANS UN FICHIER [VERSION C++]
Source avec Zip PROGRAMME DE CALCULE DE LA DISTANCE ENTRE DEUX POINTS SUR UN...
MASTERMIND NUMERIQUE [VERSION 2][TOUT COMPILATEUR]
CRYPTAGE/DECRYPTAGE DE FICHIERS [VERSION 2, TOUT COMPILATEUR...

 Sources de la même categorie

LISTER FICHIERS ET RÉPERTOIRES (MULTIPLATEFORME) par christophedlr
UTILISATION DES TYPELIST EN C++ par wyden
Source avec Zip Source avec une capture QCSSCOMPRESSOR par alphaone
AFFICHAGE D'UN TRIANGLE ISOCELE par nabche
Source avec Zip GESTION D'UNE BIBLOTHEQUE par leclerro19

Commentaires et avis

Commentaire de JosueClement le 05/06/2002 08:26:38

Est-ce que la librairie &lt;stdarg.h&gt; est en standard sur tous les compilateurs C++ ?

Commentaire de guguy le 05/06/2002 13:36:37

Oui mais si ca ne marche pas essaye avec &lt;cstdarg&gt;

Commentaire de VietCoder le 08/06/2002 15:26:22

heu.....c koi l'intérêt de mettre la variable compte à l'état static alors ke compte est une variable globale......lol
ps: si tu veux absolument une variable static, tu dois mettre la déclaration de ta variable dans la fonction main à la limite....

Commentaire de remram44 le 16/06/2006 20:57:00

Oui, c'est nul. Il aurait fallu :
1) Ne pas utiliser de globale, même static.
2) Présenter mieux si ça se veut un tutorial... Surtout vu les explications fournies.
3) Ca répond pas à la question que je me posais avant d'attérir ici... Comment on fait s'il n'y a pas d'argument "constant" pour appeler va_start() ?

Commentaire de akboy le 07/07/2006 18:06:57

En plus, c'est un code pompé de la MSDN:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_va_arg.2c_.va_end.2c_.va_start.asp

(cf en bas de la page)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,700 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales