KAR*_*HAT 2 c pointers function-pointers
我正在阅读K&R书(第一次)我遇到了一个使用指针的函数.
函数调用
qsort(
(void **)lineptr,
0,
nlines-1,
(int (*)(void *,void *)) (numeric ? numcmp : strcmp)
);
Run Code Online (Sandbox Code Playgroud)
我所理解的是,基于numeric地址strcmp或numcmp传递地址,地址类型被转换(int (*)(void *,void *))为函数所需.
功能定义
void qsort(void *v[],int left,int right, int (*comp)(void *, void *))
Run Code Online (Sandbox Code Playgroud)
关于函数指针,我的解释是正确的吗?
恩,那就对了.
自从strcmp()获取const char *参数后需要强制转换,但它们可以安全地转换为void *.
如果你查看当前的手册页,qsort()你可以看到回调的参数应该是真的const void *,不仅仅是void *,这也是一个安全的转换(只要回调将指针视为指针const,当然).
| 归档时间: |
|
| 查看次数: |
687 次 |
| 最近记录: |