返回介绍

第二十章 函数指针

发布于 2025-02-22 14:00:47 字数 1037 浏览 0 评论 0 收藏 0

函数指针是指向函数的指针,和其他指针一样,只是该指针指向函数代码段的开始地址。函数指针经常用作回调 1。

典型的例子如下:

C 标准库的 qsort()2, aexit()3;
*NIX OS 的信号机制;
线程启动:CreateThread()(Win32),pthread_create()(POSIX);
其他更多的 Win32 函数,比如 EnumChildWindows()5。

qsort() 函数是 C/C++标准库快速排序函数。该函数能够排序任意类型的数据。qsort() 调用比较函数。

比较函数被定义为如下形式:

#!cpp
int (*compare)(const void *, const void *)

我们稍作修改:

#!cpp
/* ex3 Sorting ints with qsort */
#include <stdio.h>
#include <stdlib.h>

int comp(const void * _a, const void * _b)
{
    const int *a=(const int *)_a;
    const int *b=(const int *)_b;

    if (*a==*b)
        return 0;
    else
        if (*a < *b)
            return -1;
        else
            return 1;
}

int main(int argc, char* argv[])
{
    int numbers[10]={1892,45,200,-98,4087,5,-12345,1087,88,-100000};
    int i;
    /* Sort the array */
    qsort(numbers,10,sizeof(int),comp) ;
    for (i=0;i<9;i++)
        printf("Number = %d
",numbers[ i ]) ;
    return 0;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文