
#include <stdio.h>

int main()
{
    int values[] = { 3, 2, 4, 6, 7, 1, 8, 0 };
    int num_comparisons = 0;
      
    int comparison_function(const void* a, const void* b) {
        int first = *(const int*)a;
        int second = *(const int*)b;
        num_comparisons++; /* look, we're accessing a variable from our parent function */
        if (first < second) return -1;
        else return first > second;
    }
                                                  
    qsort(values, 8, sizeof *values, comparison_function);
    
    printf( "%d %d %d %d %d %d %d %d,  %d comparisons\n",
	values[0], values[1], values[2], values[3],
	values[4], values[5], values[6], values[7],
	num_comparisons );
    
    return 0;
}
