![]() |
ucx
UAP Common Extensions
|
A collection of simple compare functions. More...
#include "common.h"
Go to the source code of this file.
Typedefs | |
typedef int(* | cx_compare_func) (const void *left, const void *right) |
A comparator function comparing two arbitrary values. | |
Functions | |
int | cx_cmp_int (const void *i1, const void *i2) |
Compares two integers of type int. | |
int | cx_vcmp_int (int i1, int i2) |
Compares two integers of type int. | |
int | cx_cmp_longint (const void *i1, const void *i2) |
Compares two integers of type long int. | |
int | cx_vcmp_longint (long int i1, long int i2) |
Compares two integers of type long int. | |
int | cx_cmp_longlong (const void *i1, const void *i2) |
Compares two integers of type long long. | |
int | cx_vcmp_longlong (long long int i1, long long int i2) |
Compares two integers of type long long. | |
int | cx_cmp_int16 (const void *i1, const void *i2) |
Compares two integers of type int16_t. | |
int | cx_vcmp_int16 (int16_t i1, int16_t i2) |
Compares two integers of type int16_t. | |
int | cx_cmp_int32 (const void *i1, const void *i2) |
Compares two integers of type int32_t. | |
int | cx_vcmp_int32 (int32_t i1, int32_t i2) |
Compares two integers of type int32_t. | |
int | cx_cmp_int64 (const void *i1, const void *i2) |
Compares two integers of type int64_t. | |
int | cx_vcmp_int64 (int64_t i1, int64_t i2) |
Compares two integers of type int64_t. | |
int | cx_cmp_uint (const void *i1, const void *i2) |
Compares two integers of type unsigned int. | |
int | cx_vcmp_uint (unsigned int i1, unsigned int i2) |
Compares two integers of type unsigned int. | |
int | cx_cmp_ulongint (const void *i1, const void *i2) |
Compares two integers of type unsigned long int. | |
int | cx_vcmp_ulongint (unsigned long int i1, unsigned long int i2) |
Compares two integers of type unsigned long int. | |
int | cx_cmp_ulonglong (const void *i1, const void *i2) |
Compares two integers of type unsigned long long. | |
int | cx_vcmp_ulonglong (unsigned long long int i1, unsigned long long int i2) |
Compares two integers of type unsigned long long. | |
int | cx_cmp_uint16 (const void *i1, const void *i2) |
Compares two integers of type uint16_t. | |
int | cx_vcmp_uint16 (uint16_t i1, uint16_t i2) |
Compares two integers of type uint16_t. | |
int | cx_cmp_uint32 (const void *i1, const void *i2) |
Compares two integers of type uint32_t. | |
int | cx_vcmp_uint32 (uint32_t i1, uint32_t i2) |
Compares two integers of type uint32_t. | |
int | cx_cmp_uint64 (const void *i1, const void *i2) |
Compares two integers of type uint64_t. | |
int | cx_vcmp_uint64 (uint64_t i1, uint64_t i2) |
Compares two integers of type uint64_t. | |
int | cx_cmp_float (const void *f1, const void *f2) |
Compares two real numbers of type float with precision 1e-6f. | |
int | cx_vcmp_float (float f1, float f2) |
Compares two real numbers of type float with precision 1e-6f. | |
int | cx_cmp_double (const void *d1, const void *d2) |
Compares two real numbers of type double with precision 1e-14. | |
int | cx_vcmp_double (double d1, double d2) |
Compares two real numbers of type double with precision 1e-14. | |
int | cx_cmp_intptr (const void *ptr1, const void *ptr2) |
Compares the integer representation of two pointers. | |
int | cx_vcmp_intptr (intptr_t ptr1, intptr_t ptr2) |
Compares the integer representation of two pointers. | |
int | cx_cmp_uintptr (const void *ptr1, const void *ptr2) |
Compares the unsigned integer representation of two pointers. | |
int | cx_vcmp_uintptr (uintptr_t ptr1, uintptr_t ptr2) |
Compares the unsigned integer representation of two pointers. | |
int | cx_cmp_ptr (const void *ptr1, const void *ptr2) |
Compares the pointers specified in the arguments without dereferencing. | |
A collection of simple compare functions.
typedef int(* cx_compare_func) (const void *left, const void *right) |
A comparator function comparing two arbitrary values.
All functions from compare.h with the cx_cmp prefix are compatible with this signature and can be used as compare function for collections, or other implementations that need to be type-agnostic.
For simple comparisons the cx_vcmp family of functions can be used, but they are NOT compatible with this function pointer.
int cx_cmp_double | ( | const void * | d1, |
const void * | d2 ) |
Compares two real numbers of type double with precision 1e-14.
void*
to be compatible with cx_compare_func without the need of a cast.d1 | pointer to double one |
d2 | pointer to double two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_cmp_float | ( | const void * | f1, |
const void * | f2 ) |
Compares two real numbers of type float with precision 1e-6f.
void*
to be compatible with cx_compare_func without the need of a cast.f1 | pointer to float one |
f2 | pointer to float two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_cmp_int | ( | const void * | i1, |
const void * | i2 ) |
Compares two integers of type int.
void*
to be compatible with cx_compare_func without the need of a cast.i1 | pointer to integer one |
i2 | pointer to integer two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_cmp_int16 | ( | const void * | i1, |
const void * | i2 ) |
Compares two integers of type int16_t.
void*
to be compatible with cx_compare_func without the need of a cast.i1 | pointer to int16_t one |
i2 | pointer to int16_t two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_cmp_int32 | ( | const void * | i1, |
const void * | i2 ) |
Compares two integers of type int32_t.
void*
to be compatible with cx_compare_func without the need of a cast.i1 | pointer to int32_t one |
i2 | pointer to int32_t two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_cmp_int64 | ( | const void * | i1, |
const void * | i2 ) |
Compares two integers of type int64_t.
void*
to be compatible with cx_compare_func without the need of a cast.i1 | pointer to int64_t one |
i2 | pointer to int64_t two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_cmp_intptr | ( | const void * | ptr1, |
const void * | ptr2 ) |
Compares the integer representation of two pointers.
void*
to be compatible with cx_compare_func without the need of a cast.ptr1 | pointer to pointer one (const intptr_t*) |
ptr2 | pointer to pointer two (const intptr_t*) |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_cmp_longint | ( | const void * | i1, |
const void * | i2 ) |
Compares two integers of type long int.
void*
to be compatible with cx_compare_func without the need of a cast.i1 | pointer to long integer one |
i2 | pointer to long integer two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_cmp_longlong | ( | const void * | i1, |
const void * | i2 ) |
Compares two integers of type long long.
void*
to be compatible with cx_compare_func without the need of a cast.i1 | pointer to long long one |
i2 | pointer to long long two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_cmp_ptr | ( | const void * | ptr1, |
const void * | ptr2 ) |
Compares the pointers specified in the arguments without dereferencing.
ptr1 | pointer one |
ptr2 | pointer two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_cmp_uint | ( | const void * | i1, |
const void * | i2 ) |
Compares two integers of type unsigned int.
void*
to be compatible with cx_compare_func without the need of a cast.i1 | pointer to unsigned integer one |
i2 | pointer to unsigned integer two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_cmp_uint16 | ( | const void * | i1, |
const void * | i2 ) |
Compares two integers of type uint16_t.
void*
to be compatible with cx_compare_func without the need of a cast.i1 | pointer to uint16_t one |
i2 | pointer to uint16_t two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_cmp_uint32 | ( | const void * | i1, |
const void * | i2 ) |
Compares two integers of type uint32_t.
void*
to be compatible with cx_compare_func without the need of a cast.i1 | pointer to uint32_t one |
i2 | pointer to uint32_t two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_cmp_uint64 | ( | const void * | i1, |
const void * | i2 ) |
Compares two integers of type uint64_t.
void*
to be compatible with cx_compare_func without the need of a cast.i1 | pointer to uint64_t one |
i2 | pointer to uint64_t two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_cmp_uintptr | ( | const void * | ptr1, |
const void * | ptr2 ) |
Compares the unsigned integer representation of two pointers.
void*
to be compatible with cx_compare_func without the need of a cast.ptr1 | pointer to pointer one (const uintptr_t*) |
ptr2 | pointer to pointer two (const uintptr_t*) |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_cmp_ulongint | ( | const void * | i1, |
const void * | i2 ) |
Compares two integers of type unsigned long int.
void*
to be compatible with cx_compare_func without the need of a cast.i1 | pointer to unsigned long integer one |
i2 | pointer to unsigned long integer two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_cmp_ulonglong | ( | const void * | i1, |
const void * | i2 ) |
Compares two integers of type unsigned long long.
void*
to be compatible with cx_compare_func without the need of a cast.i1 | pointer to unsigned long long one |
i2 | pointer to unsigned long long two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_vcmp_double | ( | double | d1, |
double | d2 ) |
Compares two real numbers of type double with precision 1e-14.
d1 | double one |
d2 | double two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_vcmp_float | ( | float | f1, |
float | f2 ) |
Compares two real numbers of type float with precision 1e-6f.
f1 | float one |
f2 | float two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_vcmp_int | ( | int | i1, |
int | i2 ) |
Compares two integers of type int.
i1 | integer one |
i2 | integer two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_vcmp_int16 | ( | int16_t | i1, |
int16_t | i2 ) |
Compares two integers of type int16_t.
i1 | int16_t one |
i2 | int16_t two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_vcmp_int32 | ( | int32_t | i1, |
int32_t | i2 ) |
Compares two integers of type int32_t.
i1 | int32_t one |
i2 | int32_t two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_vcmp_int64 | ( | int64_t | i1, |
int64_t | i2 ) |
Compares two integers of type int64_t.
i1 | int64_t one |
i2 | int64_t two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_vcmp_intptr | ( | intptr_t | ptr1, |
intptr_t | ptr2 ) |
Compares the integer representation of two pointers.
ptr1 | pointer one |
ptr2 | pointer two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_vcmp_longint | ( | long int | i1, |
long int | i2 ) |
Compares two integers of type long int.
i1 | long integer one |
i2 | long integer two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_vcmp_longlong | ( | long long int | i1, |
long long int | i2 ) |
Compares two integers of type long long.
i1 | long long int one |
i2 | long long int two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_vcmp_uint | ( | unsigned int | i1, |
unsigned int | i2 ) |
Compares two integers of type unsigned int.
i1 | unsigned integer one |
i2 | unsigned integer two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_vcmp_uint16 | ( | uint16_t | i1, |
uint16_t | i2 ) |
Compares two integers of type uint16_t.
i1 | uint16_t one |
i2 | uint16_t two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_vcmp_uint32 | ( | uint32_t | i1, |
uint32_t | i2 ) |
Compares two integers of type uint32_t.
i1 | uint32_t one |
i2 | uint32_t two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_vcmp_uint64 | ( | uint64_t | i1, |
uint64_t | i2 ) |
Compares two integers of type uint64_t.
i1 | uint64_t one |
i2 | uint64_t two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_vcmp_uintptr | ( | uintptr_t | ptr1, |
uintptr_t | ptr2 ) |
Compares the unsigned integer representation of two pointers.
ptr1 | pointer one |
ptr2 | pointer two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_vcmp_ulongint | ( | unsigned long int | i1, |
unsigned long int | i2 ) |
Compares two integers of type unsigned long int.
i1 | unsigned long integer one |
i2 | unsigned long integer two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |
int cx_vcmp_ulonglong | ( | unsigned long long int | i1, |
unsigned long long int | i2 ) |
Compares two integers of type unsigned long long.
i1 | unsigned long long one |
i2 | unsigned long long two |
-1 | if the left argument is less than the right argument |
0 | if both arguments are equal |
1 | if the left argument is greater than the right argument |