#include <stdlib.h> void f(int *tab, int n, int c) { qsort (tab, n, sizeof(n), ({int cmp (int *a, int *b) { return *a < *b*c;}; &cmp;})); } int main () { int tab[] = {4,2,5,6,7,-25,59,75}; int i; const int n = sizeof(tab)/sizeof(tab[0]); f(tab, n, -1); void g() { for (i = 0 ; i < n ; i ++) printf ("%d ", tab[i]); putchar ('\n'); } g (); f(tab, sizeof(tab)/sizeof(tab[0]), 1); g (); return 0; }
Je vous laisse imaginer ce que ca donne lorsqu'on mixe ca avec des __attribute__((cleanup)) ou __attribute__((destructor)).
