Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1059 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Varargs mi amor

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Varargs mi amor

n°999172
chrisbk
-
Posté le 03-03-2005 à 09:06:57  profilanswer
 

Mettons que j'ai une fonction

Code :
  1. void prout(const char *pomme, ....); //superbe varargs


et que maintenant je souhaite faire une fonction prout2 appelant prout, comment faire ?
 
genre
 

Code :
  1. void prout2(const char *pomme, ...) {
  2. //traitement specifique a prout
  3. prout(??) //la j'aimerais rebalancer mes varargs (pomme, ...) a prout, mais yé né sé po kommen fèr
  4. }


 
qqun a une idée ? [:petrus75]


Message édité par chrisbk le 03-03-2005 à 09:07:46
mood
Publicité
Posté le 03-03-2005 à 09:06:57  profilanswer
 

n°999189
nraynaud
lol
Posté le 03-03-2005 à 09:14:52  profilanswer
 

oué, tu vas dans le code source de la glib et tu vas voir printf, y'a une feinte, mais je m'en souviens plus /o\


---------------
trainoo.com, c'est fini
n°999191
chrisbk
-
Posté le 03-03-2005 à 09:17:44  profilanswer
 

ah oué tiens jviens de trouver ca :
 

Code :
  1. int printf(const char *format, ...)
  2. {
  3.         va_list args;
  4.        
  5.         va_start( args, format );
  6.         return print( 0, format, args );
  7. }


 
vais voir [:petrus75]
gloire te sois rendue [:petrus75]

n°999262
Taz
bisounours-codeur
Posté le 03-03-2005 à 10:33:07  profilanswer
 

et le va_end ?
tu veux pas utiliser vprintf ? y en a dans la glib effectivement. Mais attention http://bugzilla.gnome.org/show_bug.cgi?id=168387

n°999268
chrisbk
-
Posté le 03-03-2005 à 10:36:23  profilanswer
 

bin jveux pas printfé, jveux renvoyer ca a une ot fonction (en fait le code plus haut c'est nul, bouh bah beuh)

n°999281
Taz
bisounours-codeur
Posté le 03-03-2005 à 10:42:19  profilanswer
 

ben tu peux snvprintf :)

n°1002583
leneuf22
Posté le 06-03-2005 à 14:42:44  profilanswer
 

snvprintf ? inconnue au bataillon (et ya que dalle sur google)
 
En assembleur, c'est possible, mais gare aux conventions d'appel (oui je sais, c'est 0%-portable, mais ça marche)
 
En tous cas une autre solution m'interesse aussi

n°1002586
Taz
bisounours-codeur
Posté le 06-03-2005 à 14:51:15  profilanswer
 
n°1002587
Emmanuel D​elahaye
C is a sharp tool
Posté le 06-03-2005 à 14:51:21  profilanswer
 

leneuf22 a écrit :

snvprintf ? inconnue au bataillon (et ya que dalle sur google)


vsnprintf ()


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1002592
chrisbk
-
Posté le 06-03-2005 à 14:56:21  profilanswer
 

mais purée puisque je vous dit que c'est pas pour printf [:petrus75]
 
bande de schnigoudoulfe a lunette [:petrus75]
 
cela dit jme suis debrouillé autrement, merci [:god]

mood
Publicité
Posté le 06-03-2005 à 14:56:21  profilanswer
 

n°1002613
Dion
Acceuil
Posté le 06-03-2005 à 15:45:38  profilanswer
 

baika il a la classe et il va nous dire comment il a fait :o

n°1002632
leneuf22
Posté le 06-03-2005 à 16:59:25  profilanswer
 

Ok, hé bien en effet, ça résout pas du tout le problème de chrisbk cette fonction vsnprintf.
 
Il faut empiler les arguments un à un en assembleur, je pense pas que ça soit possible autrement...
 
Sauf si chrisbk nous dit comment il a fait

n°1002660
Taz
bisounours-codeur
Posté le 06-03-2005 à 18:06:00  profilanswer
 

yes :D
mais comme tout le monde n'est pas C99, j'utilise les trucs de portabilité de la glib. GNOME oblige.

n°1002662
Taz
bisounours-codeur
Posté le 06-03-2005 à 18:08:30  profilanswer
 

leneuf22 a écrit :

Ok, hé bien en effet, ça résout pas du tout le problème de chrisbk cette fonction vsnprintf.
 
Il faut empiler les arguments un à un en assembleur, je pense pas que ça soit possible autrement...
 
Sauf si chrisbk nous dit comment il a fait


je vois pas ce que fais l'assembleur ici

n°1002668
Taz
bisounours-codeur
Posté le 06-03-2005 à 18:22:15  profilanswer
 

ahahah je viens de comprendre :p
mais bon, si tu sais faire avec un ..., tu sais faire avec une va_list


Message édité par Taz le 06-03-2005 à 18:22:59
n°1002750
chrisbk
-
Posté le 06-03-2005 à 19:26:28  profilanswer
 

en fait, j'ai pas utiliser printf, c'est ca le truc [:vague nocturne] (j'ai juste refait une fonction cible prenant un va_arg en argument, c'est tout, voila je sais c'est minable, jvais me fouetter en mangeant des oursins)

n°1002751
chrisbk
-
Posté le 06-03-2005 à 19:26:52  profilanswer
 

Taz a écrit :

je vois pas ce que fais l'assembleur ici


 
bin tu push sur la pile, c'est comme ca l'api d'introspection de kenaz fait [:franck75]

n°1002782
Taz
bisounours-codeur
Posté le 06-03-2005 à 20:07:37  profilanswer
 

et alors ?
 
 
je vois pas de problème, mais c'est pas grave, c'est dimanche soir, je cherche pas à comprendre

n°1002788
chrisbk
-
Posté le 06-03-2005 à 20:09:42  profilanswer
 

D'ailleurs, on s'en tamponne.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Varargs mi amor

 

Sujets relatifs
Plus de sujets relatifs à : Varargs mi amor


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR