请选择 进入手机版 | 继续访问电脑版

普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 4852|回复: 3

[已解决] 【普中】c语言定义函数指针和typedef简写

[复制链接]

27

主题

337

帖子

3294

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3294
发表于 2020-6-16 11:30:42 | 显示全部楼层 |阅读模式
二种方法来定义函数指针

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<Windows.h>

  4. int add(int a, int b)
  5. {
  6.     return a + b;
  7. }

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

  11. void msg(char s[])
  12. {
  13.     MessageBoxA(0,s,s,0);
  14. }


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

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

  28.     getchar();
  29. }
复制代码

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


  5. void main()
  6. {
  7.     PADD padd1 = add; //创建函数指针
  8.     printf("%d",padd1(11,23));


  9.     MEG meg1 = msg;
  10.     meg1("心里的雨倾盆的下");


  11.     getchar();
  12. }
复制代码








回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-3-28 21:43 , Processed in 0.082630 second(s), 33 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表