C语言比较函数指针

我们可以用相等和不等操作符来比较函数指针。下例中用到了fptrOperation类型定义和3.3.3节中的add函数。add函数被赋给fptr1函数指针,然后和add函数的地址做比较:

fptrOperation fptr1 = add;

if(fptr1 == add) {
    printf("fptr1 points to add function\n");
} else {
    printf("fptr1 does not point to add function\n");
}

执行这段代码后,通过输出可以看到指针确实指向了add函数。

可以说明比较函数指针用处的一个更现实的例子是,用函数指针数组表示一系列任务步骤的情况。比如说,我们可能会有一系列函数维护一个库存部件数组。可能用一组操作来对部件排序,计算总数,然后打印出数组和总数;用另一组操作打印数组,找到最贵和最便宜的部件,然后显示差额。每种操作都可以用指向各自函数的指针的数组来表示。日志操作可能同时出现在上述两组操作中。借助比较两个函数指针,我们可以通过删除某个操作(比如日志)来动态修改操作,只要从列表中找到并删除对应的函数指针即可。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程