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

C语言item-type仅用单个字段表示货架隔间信息含义及实现方法

问题结论

你当前的实现方案不符合需求,核心问题是自定义存放位置类型的字段归属错误,你定义的struct ExtraInfo本身是符合「封装两个整数为单个自定义类型」要求的,只需调整它的挂载位置即可。

需求含义解释

item-type仅由单个字段/成员呈现的含义是:将原本独立的两个整数字段(货架号、隔间号)封装为一个自定义的聚合类型后,只需要在商品条目类型中声明1个该自定义类型的成员,即可同时存储两个值,不需要在商品结构体中分别写两个int类型的字段,对外表现为仅单个成员。

现有代码问题分析

你当前将struct ExtraInfo *ShelfCompartment放在了ShoppingList结构体中,这意味着整个购物列表共用同一个存放位置,而非每个商品条目对应自己的货架+隔间信息,和业务逻辑不符。

正确实现参考

将自定义的存放位置类型成员放到GrocaryItem结构体中即可,示例代码如下:

// 自定义存放位置类型,封装两个整数值
struct ExtraInfo {
    int shelf;      // 货架号
    int compartment;// 隔间号
};

struct GrocaryItem{
    char productName[20];
    float amount;
    char unit[10];
    char FileName[30];
    struct ExtraInfo position; // 单个成员即可存储两组整数,符合需求
};

struct ShoppingList{
    int length;
    struct GrocaryItem *itemList;
};

如果需要支持存放位置为空的场景,也可以将成员声明为struct ExtraInfo *position;,注意使用时需要手动申请、释放对应内存。


内容的提问来源于stack exchange,提问作者LeoParden

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:00:01