定义返回函数指针的函数有哪些不同的风格
我有一个函数:
int compare(char * c1, char * c2){
...
...
}
我可以使用哪些不同的样式来编写返回要比较的指针的函数 int ret_compare(void * item)
?
I have one function:
int compare(char * c1, char * c2){
...
...
}
What are the various styles in which I can write a function int ret_compare(void * item)
that returns a pointer to compare?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有两种主要样式,一种使用
typedef
,一种不使用(有typedef
的两种变体)。您的比较器应该采用常量指针,如下所示:请注意,这些比较器不能与
bsearch()
和qsort()
一起使用(除非您使用相当可怕的强制转换),因为这些比较器预计采用 const void * 参数。另请注意,为了比较字符串(而不是单个字符),
qsort()
或bsearch()
使用的函数应类似于:There are two main styles, one using a
typedef
and one not (with two variants of thetypedef
). Your comparator should take constant pointers, as below:Note that these comparators cannot be used with
bsearch()
andqsort()
(unless you use fairly gruesome casts) because those comparators are expected to takeconst void *
arguments.Note, too, that for comparing strings, as opposed to single characters, the function used by
qsort()
orbsearch()
should be similar to: