Argument variadique imbriqué - C - Programmation
Marsh Posté le 23-01-2019 à 16:20:37
Digaboy a écrit : Bonjour
|
Tu passe un va_list et tu crée un wrapper si elle peuvent être appelées directement. Comme le fait printf http://manpagesfr.free.fr/man/man3/printf.3.html
Marsh Posté le 24-01-2019 à 10:34:58
elles peuvent en effet être appelé directement et je ne peux donc pas changer leurs prototypes (pour le moment, la joie du legacy)
par contre je ne comprend pas ton histoire de wrapper. Je ne vois pas comment je peux créer mon wrapper qui va appeler mes fonctions de debug
edit: après avoir réfléchi un peu tu veux p-e dire de faire le wrapper dans l'autre sens, i.e. modifier la fonction de base
Code :
|
mais ça me fait modifier la fonction legacy
Marsh Posté le 11-05-2019 à 17:17:33
(Je sais ça date mais la question est intéressante.)
DEBUG_OUPTPUT_RTT et DEBUG_OUPTPUT_SCREEN sont exclusifs et debug_log() ne fait rien d'autre que renvoyer vers une des deux fonctions? Dans ce cas on pourrait passer par un pointeur de fonction non?
Code :
|
Si mes supposition sont fausses alors ça ne marche pas bien sûr.
Marsh Posté le 11-05-2019 à 17:37:54
Sinon j'arrive à ceci. Ca compile sans warnings et dans mon test ça marche, mais est-ce que c'est fiable et respecte le standard??
Code :
|
Marsh Posté le 02-06-2019 à 18:50:34
Personne pour me dire si ce bricolage respecte le standard?
Marsh Posté le 05-06-2019 à 22:31:10
désolé j'étais passé complètement à coté de ta réponse.
Je jette un oeil demain pour voir ce que ça donne
Marsh Posté le 07-06-2019 à 15:00:15
rat de combat a écrit : Sinon j'arrive à ceci. Ca compile sans warnings et dans mon test ça marche, mais est-ce que c'est fiable et respecte le standard??
|
Bon ça compile pas chez moi ^^
bon après je compile avec un compilo arm-gcc donc ya p-e une subtilité
Marsh Posté le 07-06-2019 à 15:13:10
rat de combat a écrit : Sinon j'arrive à ceci. Ca compile sans warnings et dans mon test ça marche, mais est-ce que c'est fiable et respecte le standard??
|
Bon ça compile pas chez moi ^^
error: invalid type argument of unary '*' (have 'va_list {aka __va_list}') |
bon après je compile avec un compilo arm-gcc donc ya p-e une subtilité
par contre la méthode du pointeur marche
c'est dommage que la version du dessus ne fonctionne pas car ça aurait permit de passer la liste variable et d'ajouter des paramètres avant
Marsh Posté le 07-06-2019 à 17:08:29
Tu as bien rajouté <stdarg.h>?
Chez moi ça compile sans warnings.
$ gcc --version |
Marsh Posté le 23-01-2019 à 16:09:51
Bonjour
Je cherche à faire un appel de fonction à paramètre variable à plusieurs niveaux.
Un exemple sera plus parlant
La question est de savoir comment je passe ma liste d'argument
Je pourrais passer par un type va_list mais ça rend la fonction moins lisible je trouve
Message édité par Digaboy le 23-01-2019 à 16:11:20