Вот следующая функция, которая, как предполагается сравнить значения двух целых чисел a
и b
и если возвращает положительное число a>b
и отрицательное число иначе:Функция сравнения целых чисел в C (указатели)
int int_cmp(const void *a, const void *b)
{
const int *ia = (const int*)a;
const int *ib = (const int*)b;
return *ia - *ib;
}
Я не слишком хорошо знакомы с constant
указателями (или указателями на constant
), и я не совсем понимаю причины этой функции выше. Я был бы признателен, если бы кто-то мог дать пошаговое объяснение.
хорошо ... это не о указателях, это просто математика. Если 'a b', то' a - b' будет положительным, а если 'a == b', то' a - b == 0'. –
Ваша функция действительно должна называться 'void_cmp': P –
@ Moo-Juice Почему? Это должно быть сравнение целых чисел, нет? –