gpt4 book ai didi

c - K&R C 函数指针

转载 作者:行者123 更新时间:2023-12-02 21:36:37 27 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/

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