Просьба пояснить const void * a, const void * b на нижеслегующий код. Являются ли эти постоянные ссылочные параметры, то есть внутренний код этой функции не может изменить ее значение? Зачем делать эти параметры ссылкой? Мысль, что ссылочный параметр предназначен для передачи по значению и позволяет изменять значение внутри определения функции. Зачем использовать void для аргумента параметра?C++ Синтаксис: константный ссылочный параметр
int peak_compare(const void *a, const void *b) //Function peak_compare
{
Peaks *aa = (Peaks *)a;
Peaks *bb = (Peaks *)b;
if(aa->wt1 > bb->wt1) return -1;
if(aa->wt1 == bb->wt1) return 0;
return 1;
}
Спасибо за рекомендации.
* "Почему использование 'void' для аргумента параметра?" * - используемый здесь тип фактически является "void *", и я не понимаю этого решения автора этого кода. – LihO
Функция, вероятно, предназначена для использования с алгоритмами C, такими как ['qsort'] (http://en.cppreference.com/w/cpp/algorithm/qsort) и [' bsearch'] (http: // ru. cppreference.com/w/cpp/algorithm/bsearch). –
, а отбрасывания не-созвездий - зло. use 'const Peaks *' – WhozCraig