【发布时间】:2015-07-19 14:23:36
【问题描述】:
我在我的程序 (C) 中做了以下 typedef:
typedef void* ListElement;
typedef int(*CompareListElements)(ListElement, ListElement);
我在我的代码中创建了一个函数指针:
CompareListElements compareElement
稍后在代码中我希望在 ListElements 数组上使用 qsort:
qsort(elementsArray,listGetSize(list),sizeof(list->dummyHead->next->element, compareElement);
但是编译器声明:“从不兼容的指针类型传递 'qsort' 的参数 4”。
我担心这是因为 qsort 需要 int (const void*, const void*) 格式的函数。当我提供 int (void*, void*).
有没有办法在调用 qsort 或之前将 compareElement 的参数转换为 (const void*, const void*),而不更改 typedef?
谢谢
【问题讨论】:
标签: function casting constants void qsort