Bifalgorithm post · Computer science one · Comparator Functions
How do you implement a comparator for integers in C?
How do you implement a comparator for integers in C? (Computer science one · Comparator Functions) — "To write a comparator function that orders integers in as…
Ideas in this flowchart
- Implementación de comparadores para ordenar valores
- Convertir los punteros genéricos al tipo específico que se compara
- Comparador de enteros en orden ascendente
- Comparador de enteros en orden descendente
- Patrón general de implementación de comparadores
- Un puntero void no puede desreferenciarse porque el tamaño del tipo no está definido
- Los punteros int* o double* sí pueden desreferenciarse porque el compilador conoce el tamaño del tipo
- Realizar una conversión explícita a const int*: const int *x = (const int *) a;
- Conservar const para impedir que el comparador modifique las variables
- Comparar los valores enteros desreferenciados
- Si *x < *y, devolver un valor negativo
- Si *x == *y, devolver cero
- En caso contrario, devolver un valor positivo
- Reutilizar el comparador ascendente invirtiendo sus argumentos
- cmpIntDesc(const void *a, const void *b) devuelve cmpInt(b, a)
- En estructuras, comparar el estado del tipo mediante uno o más componentes