繁体   English   中英

Qsort结构比较功能数组

[英]Qsort array of structs compare function

好的,我可以通过在线浏览等方式使它起作用,但是有人可以解释编号为1和2的行的确切含义以及为什么需要它们

int structCompare(const void *a, const void *b)
{
     struct trade *tempA = (struct trade *)a;//(1)
     struct trade *tempB = (struct trade *)b;//(2)
     return strcmp(tempA->name, tempB->name);
}

这些行将通用void指针转换为struct trade指针。 当涉及void *时,显式强制转换在C中是多余的,应将其消除:

 struct trade *tempA = a;
 struct trade *tempB = b;
 return strcmp(tempA->name, tempB->name);

您可能已经写过:

return strcmp(((struct trade *)a)->name, ((struct trade *)b)->name);

我更喜欢第一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM