1. Запись четвертого параметра означает, что compare, каково бы оно ни было (какая бы функция тут ни была реально указана), принудительно приводится к указателю на функцию, принимающую два параметра типа void* и возвращающую значение типа int.
2. Можно не объявлять как const, но "хороший" стиль программирования требует, чтобы параметр, если функция по логике своей работы его заведомо не изменяет, был объявлен как const. Это уберегает от возможных ошибок - даже если ты по ошибке попытаешься изменить const-параметр, компилятор сразу же выругается по этому поводу.
1
|