Two arguments are passed to the comparison function pointed to by compar. The two arguments point to the objects being compared. Depending on whether the first argument is less than, equal to, or greater than the second argument, the comparison function returns an integer less then, equal to, or greater than 0. The comparison function compar need not compare every byte, so arbitrary data might be contained in the objects in addition to the values being compared. The order in the output of two objects that compare as equal is unpredictable.