声明含义

时间:2014-02-13 19:19:06

标签: c binary-search-tree

什么是

  int(*compare)(void* argu1, void*argu2);

意思?我从来没有见过这样的东西,它在我的二元搜索树章节中,它是在BST结构中:

typdef struct{
             int counter; 
             int(*compare)(void* argu1, void*argu2);
             NODE* root;
             }BST; 

4 个答案:

答案 0 :(得分:2)

这是一个名为compare的变量,它是一个指向函数的指针。该函数返回int并接收两个void *参数。

函数指针经常用于提供一种方法来一般地比较一些其他函数(例如排序或排序例程)不理解的类型的值;调用者提供了代表泛型函数进行比较的函数。

答案 1 :(得分:1)

这意味着compare是一个指向函数的指针,该函数的参数类型为void *,返回类型为int

答案 2 :(得分:1)

int(*compare)(void* argu1, void*argu2);

这是一个变量声明。变量是一个函数指针,其名称为“compare”。它可以指向任何返回int并带有两个void指针的函数。

答案 3 :(得分:0)

代码声明了一个名为“compare”的变量。此变量是函数指针类型,这意味着您可以为此变量分配函数名称,稍后调用此函数就像进行常规函数调用一样。为了进一步阅读,您可以参考早期结合与晚期结合。