You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 09:02:37