If you run the code by yourself you end up that C (while calling the compare() less often than C++) needs more comparisons (i.e. more '<' and '==') kinda defeating the argument of costly comparisons:
N = 2**16:
qsort comparison calls 14.735568
qsort comparisons 22.103386
std::sort comparisons 19.294233