Bonjour,
Désolé si j'aborde un sujet déjà traité, mais ma recherche sur le forum n'a rien donné.
J'ai un cas concret sur Linux en C avec printf en 2 lignes.
A l'exécution j'ai comme affichage:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #include <stdio.h> int main(int nArgCount, char **sArguments) { printf("#DEBUG: essai '%s', '%s'\n", "p1", "p2"); printf("#DEBUG: essai '%s', '%s'\n", "p1"); return 0; }
Strange. Je dirais même plus: pas terrible
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 #DEBUG: essai 'p1', 'p2' #DEBUG: essai 'p1', 'p2'
Le compilateur est gcc 4.2.3 (un récent).
Là où je veux en venir, c'est que j'ai écrit une fonction qui utilise stdarg.h (avec les f(a/u)meuses macros va_start, va_arg et va_end) et je cherche un moyen simple de déterminer le nombre d'arguments passés à la fonction (définie avec quelques paramêtres et '...').
L'idée étant de détecter d'anciennes valeurs passées afin de ne prendre en compte que les nouvelles (ie: dans mon exemple l'argument 'p2' du 2è printf serait détecté comme une ancienne valeur).
J'ai quelques menues idées, mais voudrais savoir comment vous procédriez
PluX59
Partager