【问题标题】:passing arg2 of 'listFind' from incompatible pointer type从不兼容的指针类型传递 'listFind' 的 arg2
【发布时间】:2010-05-12 08:08:15
【问题描述】:

我的功能有问题,不知道如何解决,这是我的代码:

ListResult result=listFind(currentLines, compareBasicLines, &linePrototype);  <-here problem

比较指向函数的BasicLines指针

int compareBasicLines(ptrLine line1, ptrLine line2){
    COMPARE_NUMBER_STRINGS(line1, line2);
}

COMPARE_NUMBER_STRINGS(line1, line2); 在另一个文件中定义

#define COMPARE_NUMBER_STRINGS(var1, var2)                              \
                    if(var1 == NULL || var2 == NULL){                   \
                        return 0;                                       \
                    }                                                   \
                    return strcmp(var1->strNumber, var2->strNumber);

提前感谢大家

这是我的,我的作业是关于 ADT,所以我不知道我在 listFind 里面到底有什么

/**
 * Searches the list for an element fitting the criteria starting from the
 * current element.
 * Note that you need to call listGetFirst if you wish to search from the start
 * of the list. The search starts from the current element.
 * @param list
 *  The list to search in
 * @param compare
 *  Comparison function to decide if an element in the last is equal to the
 *  target elemnt. This function should return 0 for equal elements
 * @param target
 *  A target element to compare with each element in the list.
 * @return
 *  LIST_NULL_ARGUMENT if list or compare are NULL
 *  LIST_INVALID_CURRENT if the current pointer of the list is in invalid state
 *  LIST_NO_SUCH_ELEMENT if no element was found from the current element until
 *  the end of the list
 *  LIST_SUCCESS an element was found and the current pointer of the list is now
 *  set to this element
 *
 */

ListResult listFind(List list, CompareListElements compare, ListElement target);

还有一个定义

typedef int (*CompareListElements)(ListElement, ListElement);

typedef void* ListElement;

【问题讨论】:

  • 抱歉,您需要更具体一些。问题是什么?编译失败了吗?链接失败?错误信息是什么?
  • 从不兼容的指针传递'listFind'的arg2

标签: c eclipse warnings compiler-warnings


【解决方案1】:

listFind() 的第二个参数是 int (*)(ptrLine, ptrLine) 类型。这明显不同于listFind()声明中第二个参数的类型。

没有看到listFind() 的定义,很难说你应该做些什么来修复它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 2020-05-11
    • 1970-01-01
    • 2016-01-27
    • 2011-08-17
    • 2016-03-28
    相关资源
    最近更新 更多