c语言 - 劳登算法上的匹配指针



我在这里浏览这本书(掌握C中的算法),寻找图形实现。但是他用了一些我不熟悉的符号。这不是很明显,我试图找出他是否在书的某个地方解释过,但我没有。

定义Graph类型时,其中一个结构成员是

int   (*match) (const void *key1, const void *key2);

好,这里我们有两个要比较的泛型值?为什么在结构体内部?其他地方没有出现的*match function在哪里?

他在单链表中一直使用这种声明,但我找不到任何解释。

*destroy或多或少是同一种函数?我发现他在说这样会释放结构体的内存。但是,为什么在这里?

这感觉像是一个非常基本和明显的问题,但是我在任何地方都找不到答案,而且我真的没有人可以问。

这就是如何定义指向方法的指针。所以这个结构体有一个变量匹配,它应该得到一个值,一个方法得到2const void *

int matchGraphMyWay(const void *key1, const void *key2){
...
}
int main(){
// Graph g = ...
g.match = &matchGraphMyWay; // Assign value to the match function.
g.match(...) // Execute the match function
}

相关内容

  • 没有找到相关文章

最新更新