c - 基于单个/多个动态结构字段的结构数组排序
问题描述
我的结构如下:
typedef struct cellular_phone{
int id;
char name[40];
int ram;
char cpu[20];
int display_ppi;
double display_size;
char display_resolution[10];
char size[15];
int weight;
char notes[500];
int id_manufacturer;
int id_os;
}phone;
我试图让用户能够根据他选择的字段对此类结构的数组进行排序;例如:按 id_os 排序,如果对名称进行相等排序我要使用的算法是 c 的 qsort()。
我认为实现这一点的一种可能方法是为每种类型创建一个函数并使用 if/else 链来检查用户输入。显然,这将是非常低效的,并且几乎不可能与多个字段一起使用。C 也不支持反射,因此即使将用户输入与结构成员进行比较也是不可能的。
我对 C 很陌生,所以我不知道这种做事方式是否正确,我愿意接受建议
解决方案
推荐阅读
- python-3.x - 使用 tinymce 的 Python 图像上传处理程序代码
- c# - 将 Db 查询结果划分为任意数量的任务
- ios - 为什么 iPhone 12 Pro 立体视频帧垂直移位?
- java - 是否可以在 Cloudsim 中计算动态阈值?
- c# - 第三者名单变更通知
- primefaces - 尽管在 primefaces p:cellEditor 中具有相同的表达式,但 h:outputText 中的 JSF2 ValueExpression 不会评估为 true
- sql-server - 如何将二进制列数据读入火花数据帧?
- c# - 将 retryPolicy 与 SqlAzureExecutionStrategy 一起使用时,避免“SqlParameter 已被另一个 SqlParameterCollection 包含”异常
- mysql - 带有'n'个条件的Mysql查询用NOT括起来
- arrays - 在 Tableview (Swaft) 上获取重复的 Firestore 文档