begin process at 2010 02 10 11:59:00
  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 :9 145

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

AFFICHAGE D'UN TRIANGLE ISOCELE par nabche
Source avec Zip GESTION D'UNE BIBLOTHEQUE par leclerro19
[PSP]HELLO WORLD par Mario1095
Source avec Zip Source avec une capture UTILISER LA LIB DIRENT par Lemng
UN TABLEAU MULTIDIMENTIONNEL COMME PARAMETRE DE FONCTION EN ... par Mcjo

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...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,281 sec (3)

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