Man page - sdl_bsearch_r(3)
Packages contains this manual
Manual
SDL_bsearch_r
NAMEHEADER FILE
SYNOPSIS
DESCRIPTION
FUNCTION PARAMETERS
RETURN VALUE
THREAD SAFETY
AVAILABILITY
SEE ALSO
NAME
SDL_bsearch_r - Perform a binary search on a previously sorted array, passing a userdata pointer to the compare function.
HEADER FILE
Defined in SDL3/SDL_stdinc.h
SYNOPSIS
#include "SDL3/SDL.h"
void * SDL_bsearch_r(const void *key, const void *base, size_t nmemb, size_t size, SDL_CompareCallback_r compare, void *userdata);
DESCRIPTION
For example:
typedef enum {
sort_increasing,
sort_decreasing,
} sort_method;
typedef struct
{
int key;
const char *string;
} data;
int SDLCALL
compare(const void *userdata, const void *a, const void *b)
{
sort_method method = (sort_method)(uintptr_t)userdata;
const data *A = (const data *)a;
const data *B = (const data *)b;
if (A->key
< B->key) {
return (method == sort_increasing) ? -1 : 1;
} else if (B->key < A->key) {
return (method == sort_increasing) ? 1 : -1;
} else {
return 0;
}
}
data values[] =
{
{ 1, "first" }, { 2, "second" }, { 3,
"third" }
};
data key = { 2, NULL };
data *result = SDL_bsearch_r(&key, values, SDL_arraysize(values), sizeof(values[0]), compare, (const void *)(uintptr_t)sort_increasing);
FUNCTION PARAMETERS
|
key |
a pointer to a key equal to the element being searched for. |
|||
|
base |
a pointer to the start of the array. |
|||
|
nmemb |
the number of elements in the array. |
|||
|
size |
the size of the elements in the array. |
compare
a function used to compare elements in the array.
userdata
a pointer to pass to the compare function.
RETURN VALUE
Returns a pointer to the matching element in the array, or NULL if not found.
THREAD SAFETY
It is safe to call this function from any thread.
AVAILABILITY
This function is available since SDL 3.2.0.
SEE ALSO
• (3), SDL_bsearch (3), • (3), SDL_qsort_r (3)