是什么声明意味着
int(*compare)(void* argu1, void*argu2);
是什么意思?我从来没有见过这样的事情,这是我的二叉搜索树章,是它在BST strucutre:
typdef struct{
int counter;
int(*compare)(void* argu1, void*argu2);
NODE* root;
}BST;
是什么声明意味着
int(*compare)(void* argu1, void*argu2);
是什么意思?我从来没有见过这样的事情,这是我的二叉搜索树章,是它在BST strucutre:
typdef struct{
int counter;
int(*compare)(void* argu1, void*argu2);
NODE* root;
}BST;
这意味着compare
是指向具有其void *
类型的两个参数的函数,有回报键入int
。
int(*compare)(void* argu1, void*argu2);
这是一个变量声明。该变量是一个函数指针,它的名字是“compare”。它可以指向任何返回一个int并带两个void指针的函数。
这是一个名为compare
的变量,它是一个指向函数的指针。该函数返回一个int
并接收两个void *
参数。
函数指针经常用于提供一种方法来一般性地比较某个其他函数(如排序或排序例程)不理解的类型的两个值;调用者提供了一个函数来代表泛型函数进行比较。
该代码声明了一个名为“compare”的变量。这个变量是一个函数指针类型,这意味着你可以为这个变量指定一个函数名称,稍后调用这个函数就像进行常规函数调用一样。为了进一步阅读,您可以参考早期结合与晚期结合。
http://stackoverflow.com/questions/840501/how-do-function-pointers-in-c-work 读约函数指针 –
另外,[螺旋规则](HTTP:// C -faq.com/decl/spiral.anderson.html)是解析这种语法的有用策略。 – kbshimmyo