diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2017-05-21 16:48:11 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2017-05-21 16:48:11 (GMT) |
commit | acd355c4c5ae25fb9cac64b8dc17407a2bcc979b (patch) | |
tree | d5b43201049116cd9734ff554e61ed8a7e0084cc /src/common | |
parent | 4691a434a34a19317156a761967f719e408b73bb (diff) |
Refined the whole share system for operands.
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/sort.c | 66 | ||||
-rw-r--r-- | src/common/sort.h | 6 |
2 files changed, 72 insertions, 0 deletions
diff --git a/src/common/sort.c b/src/common/sort.c index 7da9a29..014d6c7 100644 --- a/src/common/sort.c +++ b/src/common/sort.c @@ -35,6 +35,37 @@ * Paramètres : a = premier élément à consulter et comparer. * * b = second élément à consulter et comparer. * * * +* Description : Compare un booléen avec une autre. * +* * +* Retour : Bilan de la comparaison. * +* * +* Remarques : - * +* * +******************************************************************************/ + +int sort_boolean(bool a, bool b) +{ + int result; /* Bilan à renvoyer */ + + if (a && !b) + result = 1; + + else if (!a && b) + result = -1; + + else + result = 0; + + return result; + +} + + +/****************************************************************************** +* * +* Paramètres : a = premier élément à consulter et comparer. * +* b = second élément à consulter et comparer. * +* * * Description : Compare une valeur avec une autre. * * * * Retour : Bilan de la comparaison. * @@ -63,6 +94,41 @@ int sort_unsigned_long(unsigned long a, unsigned long b) /****************************************************************************** * * +* Paramètres : a = premier élément à consulter et comparer. * +* b = second élément à consulter et comparer. * +* compar = méthode de comparaison entre éléments. * +* * +* Description : Compare un pointeur avec un autre. * +* * +* Retour : Bilan de la comparaison. * +* * +* Remarques : - * +* * +******************************************************************************/ + +int sort_pointer(const void *a, const void *b, __compar_fn_t compar) +{ + int result; /* Bilan à renvoyer */ + + if (a != NULL && b == NULL) + result = 1; + + else if (a == NULL && b != NULL) + result = -1; + + else if (a == NULL && b == NULL) + result = 0; + + else + result = compar(a, b); + + return result; + +} + + +/****************************************************************************** +* * * Paramètres : key = élément de comparaison à retrouver ou approcher. * * base = adresse du tableau à parcourir. * * nmemb = nombre d'éléments présents au total. * diff --git a/src/common/sort.h b/src/common/sort.h index fb47a5e..a887543 100644 --- a/src/common/sort.h +++ b/src/common/sort.h @@ -30,9 +30,15 @@ +/* Compare un booléen avec une autre. */ +int sort_boolean(bool, bool); + /* Compare une valeur avec une autre. */ int sort_unsigned_long(unsigned long, unsigned long); +/* Compare un pointeur avec un autre. */ +int sort_pointer(const void *, const void *, __compar_fn_t); + /* Effectue une recherche dichotomique dans un tableau. */ bool bsearch_index(const void *, const void *, size_t, size_t, __compar_fn_t, size_t *); |