Richard F. Gilberg数据结构书中createList函数C声明正确译法确认
关于Richard F. Gilberg《数据结构》中createList函数声明的C语言译法确认
没问题,我来帮你确认这个函数声明的准确译法,顺便优化下表述的严谨性:
准确译法
createList 是一个函数:
- 它的参数是
compare,这是一个指向函数的指针; - 被指向的那个函数需要接收两个
void*类型的通用指针参数,并且返回一个int类型的值; - 最终
createList函数会返回一个LIST类型的指针。
你的翻译思路完全正确,把层级拆解开表述会更符合C语言开发者的阅读习惯,也更严谨。
原书的函数声明与实现
函数声明
LIST* createList (int (* compare) (void* argu1, void* argu2))
函数实现
LIST* createList (int (*compare) (void* argu1, void* argu2)) { //Local Definitions LIST* list; //Statements list = (LIST*) malloc (sizeof (LIST)); if (list) { list->head = NULL; list->pos = NULL; list->rear = NULL; list->count = 0; list->compare = compare; } // if return list; } // createList
额外补充一句:这种把比较函数指针传入链表创建函数的设计,是C语言里实现泛型链表的经典方式——通过替换不同的compare函数,同一个链表结构可以适配不同类型的元素比较需求,非常灵活。
内容的提问来源于stack exchange,提问作者Kazstar
相关产品推荐
相关产品推荐

