C 语言函数指针

摘要:
C代码:#includeintdd(intx,inty);int减法(intx,inty);intdomath(int(*matrop)(int,int),intx,inty);intadd(intx,inty){returnx+y;}intsubtract(intx,inty){returnx-y;}intdomath(int(*mathop)(int,int),

c代码:

#include <stdio.h>
int add(int x,int y);
int subtract(int x,int y);
int domath(int (*mathop)(int,int),int x,int y);

int add(int x,int y)
{
    return x+y;
}
int subtract(int x,int y)
{
    return x-y;
}
int domath(int(*mathop)(int,int),int x,int y)
{
    return (*mathop)(x,y);
}

int main()
{
    int a=domath(add, 10, 2);
    printf("Add gives:%d
",a);
    int b=domath(subtract, 10, 2);
    printf("Subtract gives:%d
",b);
}

运行结果:

Add gives:12

Subtract gives:8

免责声明:文章转载自《C 语言函数指针》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇spring容器监听器Docker 安装 Python下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Delphi New,Getmem,ReallocMem联系与区别

procedure New(var P: Pointer);   {为一个指针变量分配内存,会自动计算指针所指数据结构需要空的空间大小} procedure GetMem(var P: Pointer; Size: Integer); {分配一个指定大小的内存块(连续),并用P指向它} procedure ReallocMem(var P: Pointer...

C#堆和栈

堆和栈是两种可以分配的内存。 栈保存代码的运行路径。堆保存对象。 栈好比整齐摆放的盒子。堆则好比杂乱无章的盒子。 在堆中我们可以轻易找到需要的对象,而由于默认访问最顶端的栈,当栈中的方法执行完毕之后就会丢弃,然后继续查找最顶端的盒子,直到发现合适的。 借用其他博主的图片。左边是栈,右边是堆。 栈是内存自主维护的。而堆则需要垃圾回收机制 堆和栈主要存放了四...

海康SDK编程指南(C#二次开发版本)

海康SDK编程指南 目前使用的海康SDK包括IPC_SDK(硬件设备),Plat_SDK(平台),其中两套SDK都需单独调用海康播放库PlayCtrl.dll来解码视频流,返回视频信息和角度信息。本文仅对视频监控常用功能的使用进行说明,其它未实现功能请参看设备网络SDK使用手册和播放库编程指南V7.2。 IPC_SDK编程指南 (一) SDK的引用 由于I...

使用lockbits方法处理图像(转)

   许多图像处理任务即时是最简单的文件类型转换,例如从32位深度到8位深度的格式转化,直接获得像素阵列要比使用GetPixel和SetPixel等方法的效率高得多。         你可能会发现DotNet采用托管机制,大多数情况下微软会推荐你使用托管代码,理由是便捷和安全。实际应用中,直接操作内存中的数据块是很少见的,尽管如此,图像处理恰恰是这类为数...

鼠标指针下总出现一个滚动条似的方框,怎么办?有图

鼠标指针下总出现一个滚动条似的方框,怎么办?有图 本人的解决办法: 控制面板 -》硬件声音-》鼠标-》指针-》去掉最下面允许主题更改指针(L)的复选框-》点击确定。   ps:也可以从桌面-》右键-》个性化-》更改鼠标指针-》指针 进去设置...

iOS中常见 Crash 及解决方案

一、访问了一个已经被释放的对象 在不使用 ARC 的时候,内存要自己管理,这时重复或过早释放都有可能导致 Crash。 例子 NSObject *aObj = [[NSObject alloc]init]; [aObj release]; NSLog(@"%@",aObj); 原因 aObj 这个对象已经被释放,但是指针没有置空,这时访问这个指针指向的...