Sorts the num elements of the array pointed to by base, each element size bytes long, using the compar function to determine the order.
The sorting algorithm used by this function compares pairs of elements by calling the specified compar function with pointers to them as argument.
The function does not return any value, but modifies the content of the array pointed to by base reordering its elements as defined by compar.
The order of equivalent elements is undefined. Parameters: 1.basePointer to the first object of the array to be sorted, converted to a void*. 2.numNumber of elements in the array pointed to by base.size_t is an unsigned integral type. 3.sizeSize in bytes of each element in the array.size_t is an unsigned integral type. 4.comparPointer to a function that compares two elements.This function is called repeatedly by qsort to compare two elements. It shall follow the following prototype:int compar (const void* p1, const void* p2); Taking two pointers as arguments (both converted to const void*). The function defines the order of the elements by returning (in a stable and transitive manner): int compareMyType (const void * a, const void * b){ if ( *(MyType*)a < *(MyType*)b ) return -1; if ( *(MyType*)a == *(MyType*)b ) return 0; if ( *(MyType*)a > *(MyType*)b ) return 1;} Example: /* qsort example */#include <stdio.h> /* printf */#include <stdlib.h> /* qsort */ int values[] = { 40, 10, 100, 90, 20, 25 }; int compare (const void * a, const void * b){ return ( *(int*)a - *(int*)b );} int main (){ int n; qsort (values, 6, sizeof(int), compare); for (n=0; n<6; n++) printf ("%d ",values[n]); return 0;} Output: 10 20 25 40 90 100
0 Comments