gpt4 book ai didi

c - K&R C函数指针

转载 作者:行者123 更新时间:2023-12-02 04:39:17 24 4
gpt4 key购买 nike

我在读 K&R 书(第一次)时遇到了一个使用指针的函数。

函数调用

qsort(
(void **)lineptr,
0,
nlines-1,
(int (*)(void *,void *)) (numeric ? numcmp : strcmp)
);

我的理解是,基于 numeric 传递 strcmpnumcmp 的地址并将地址类型转换为 (int (*)(void *,void *)) 根据函数的要求。

函数定义

void qsort(void *v[],int left,int right, int (*comp)(void *, void *))

那么我对函数指针的解释是否正确?

最佳答案

是的,没错。

因为 strcmp() 采用 const char * 参数,所以需要转换,但它们可以安全地转换为 void *

如果你看the current manual page for qsort()你可以看到回调的参数实际上应该是 const void *,而不仅仅是 void * 但这也是一个安全的转换(只要回调将指针视为指向const,当然)。

关于c - K&R C函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21253331/

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