Programmation Avancée en C


min.c

00001 #include <stdio.h>
00002 #include <stdarg.h>
00003 
00004 int min(int first, ...) {
00005         va_list ap;          // La liste des arguments.
00006         va_start(ap, first); // Initialisation de la structure ap.
00007         int res = first, next = first;
00008         while (next >= 0) {
00009                 if (next < res) res = next;
00010                 next = va_arg(ap, int); // On récupère le prochain argument.
00011         }
00012         va_end(ap); // Fin d'utilisation de ap.
00013         return res;
00014 }
00015 
00016 int main()
00017 {
00018         int m1 = min(14,5,17,2,11,-1); // -1 indique la fin de la liste d'arguments.
00019         int m2 = min(27,11,79,-1);
00020         printf("m1 = %d \t m2 = %d\n",m1,m2);
00021         return 0;
00022 }