c - 在什么情况下,我应该在结构中包含用于管理泛型类型的函数?
问题描述
我对此感到很困惑。让我举一个例子,说明我最初的猜测是错误的。
我有一个名为 的通用数据类型Amazon
,它存储用户(仅通过他们的 ID 标识)想要销售的不同产品的列表。每个列表都包含产品的 ID(唯一)、产品本身(通用类型并且对于某个特定的所有产品都相同Amazon
)和最低价格。
如果用户想要购买某些产品,他会在现有的先前出价列表中添加出价。即使用户出价高,也必须存储以前的出价。
如果不清楚,用户在创建系统时提供免费功能和产品类型的复制功能。
我实现该系统的想法是包含三个结构:
typedef void* product_type;
typedef product_type(*product_type_copy)(product_type);
typedef void(*product_type_free)(product_type);
struct amazon_t{
Set listings;
product_type_copy copy;
product_type_free free;
};
struct product_info_t{
List bids;
int id;
int min_price;
product_type product;
};
struct bid_t{
int bidder_id;
int bid_sum;
};
现在,当我回来考试时,我看到扣分是因为结构product_info_t
还应该包含产品类型的复制函数和自由函数,如下所示:
struct product_info_t{
List bids;
int id;
int min_price;
product_type product;
product_type_copy copy;
product_type_free free;
};
我不明白为什么这是必要的。有人可以解释一下为什么在这种情况下我应该将函数添加到两个结构中吗?
注:Amazon
是一个指针的名字amazon_t
解决方案
推荐阅读
- javascript - 如何使滚动 jQuery 侦听器适应 CSS 媒体查询?(Javascript/jQuery/引导)
- relational-database - How to design a relational model for double-entry accounting with job costing
- android - How does exposed LiveData dispatch changes when postValue is called on MutableLiveData variable?
- python - pytest_sessionstart/finish 不会打印
- amazon-web-services - VMware 购买解决方案
- python - 管理表格内联上的自定义模型表单提供完整性错误
- json - 如何以这种 JSON 格式发送 Angular 8 表单数据?如何构建嵌套 JSON 以通过 HTTP 发布请求发送?
- javascript - Lodash 按键组数组
- cron - 如何使用 Bitnami LAMP 堆栈在 LightSail 服务器上运行自定义 cron 作业?
- reactjs - React / Redux / Meteor:在回调中调度一个动作的方法,被调用两次