C语言函数指针以及typedef简写

1 篇文章 0 订阅

 二种方法来定义函数指针

#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>

int add(int a, int b)
{
    return a + b;
}

//void msg(char s[])
//void (*p)(char s[]) 函数指针的定义方法
//void (*)(char *s)   函数指针的类型

void msg(char s[])
{
    MessageBoxA(0,s,s,0);
}


void main()
{
    //方法1
    //定义函数指针的规则
    //1.先把函数拿过来  int add(int a, int b) , add就是一个地址
    //2.把函数名挖空    int (*p)(int a,int b);
    int(*padd)(int a, int b); //函数指针
    //3.赋值
    padd = add;
    printf("%d", padd(11, 19));//30

    //方法2.直接初始化
    void(*pmsg)(char s[]) = msg; //定义函数指针并初始化
    pmsg("心里的雨倾盆的下");

    getchar();
}
//使用typedef给函数指针类型一个别名
//typedef没有定义新的类型,给已经有的类型起一个别名,减少输入
typedef int(*PADD)(int a, int b); //*类型, PADD存储函数地址
typedef void(*MEG)(char s[]);

void main()
{
    PADD padd1 = add; //创建函数指针
    printf("%d",padd1(11,23));
    
    MEG meg1 = msg;
    meg1("心里的雨倾盆的下");

    getchar();
}

原创地址:https://www.cnblogs.com/loveyouyou616/p/5759046.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言中的函数回调是指将一个函数作为参数传递给另一个函数,并在特定条件下执行该函数。函数回调通常使用函数指针来实现。在C语言中,可以使用typedef为回调函数定义别名,使代码更加简洁易读。具体实现方法如下: 1. 定义回调函数类型 ```c typedef void (*CallbackFunc)(int); ``` 上述代码定义了一个名为CallbackFunc的函数指针类型,该函数指针指向一个返回类型为void,参数为int类型的函数。 2. 使用回调函数 ```c void doSomething(int value, CallbackFunc callback) { printf("正在执行某些操作...\n"); // 模拟操作完成后调用回调函数 callback(value); } ``` 上述代码定义了一个名为doSomething的函数,该函数接受两个参数:一个int类型的值和一个CallbackFunc类型的函数指针。在函数内部,我们可以通过调用回调函数来执行特定的操作。 3. 定义回调函数 ```c void callbackFunc(int result) { printf("回调函数被调用,处理结果为: %d\n", result); } ``` 上述代码定义了一个名为callbackFunc的回调函数,该函数接受一个int类型的参数,并在函数内部执行特定的操作。 4. 调用函数,将回调函数作为参数传递 ```c int main() { int value = 100; // 调用函数,将回调函数作为参数传递 doSomething(value, callbackFunc); return 0; } ``` 上述代码在主函数中调用了doSomething函数,并将callbackFunc函数作为参数传递给它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值