gpt4 book ai didi

c - 将值传递给函数而不被列为正式参数?

转载 作者:太空宇宙 更新时间:2023-11-04 07:18:13 25 4
gpt4 key购买 nike

在 stdlib.h 中,

void qsort (void* base, size_t num, size_t size,
int (*compar)(const void*,const void*));

是否可以将以下函数作为 compar 传递,

int compareMyType (const void * a, const void * b, float c)
{
float tmp = f((MyType*)a, (MyType*)b, c ); // f is some function
if (tmp < 0) return -1;
if (tmp == 0) return 0;
if (tmp > 0) return 1;
}

如果不是,不声明c为全局变量,有什么办法吗?谢谢!

最佳答案

创建一个与 qsort 兼容的代理函数,并在其主体中调用您的函数:

int myCompare(const void *a, const void *b) {
float c = ...;

return compareMyType(a, b, c);
}

...

qsort(..., myCompare);

关于c - 将值传递给函数而不被列为正式参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22984263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com