#include <iostream>
using namespace std;
void square(float&x,float&y){x=x*x;y=y*y;}
void cube(float&x,float&y){x=x*x*x;y=y*y*y;}
typedef void (*p)(float&,float&);
void print(p vp,float&x,float&y)//用指针p声明出来一个vp
{
 cout<<"执行函数前:"<<endl;
 cout<<"x:"<<x<<"/ty:"<<y<<endl;
 vp(x,y);
 cout<<"执行函数后:"<<endl;
 cout<<"x:"<<x<<"/ty:"<<y<<endl;
}
void Swap(float&x,float&y){int z;z=x;x=y;y=z;}
int main()
{
 float a=2,b=3;
 char choice='0';
 int i;
 //void (*p[5])(float&x,float&y);
 p vp;
 for (i=0;i<5;i++)
 {
  cout<<"[0]退出[1]平方[2]立方[3]交换x和y的值:";
  cin>>choice;
  bool quit=false;
  switch (choice)
  {
  case '0':quit=true;break;
  case '1':vp=square;break;
  case '2':vp=cube;break;
  case '3':vp=Swap;break;
  default:vp=0;
  }
  if (quit==true){break;}
  if (vp==0){cout<<"请输入一个从0到3之间的数字!"<<endl;i=i-1;continue;}
  print(vp,a,b);
 }
 return 0;
}

使用typedef简化函数指针的声明相关推荐

  1. c/c++ typedef定义函数指针(Hook前奏2)

    文章目录 简介 为什么一定要使用 typedef 定义函数指针呢? 简介 关于函数指针的介绍,点击超链接即可查看,这里就不做过多说明了,或者可以点击这里: https://blog.csdn.net/ ...

  2. typedef定义函数指针类型的使用

    定义函数指针 定义函数指针的方法,返回值与参数列表要与指针所要指向的函数一致 返回值 (*函数指针名)(参数列表); 使定义的函数指针ptrFunc指向函数Func,并且使用ptrFunc ptrFu ...

  3. 使用 typedef 定义函数指针,更优雅的使用函数指针

    简介 关于函数指针的介绍,这里就不做过多说明了,不了解的同学可以看看这篇博客: https://blog.csdn.net/afei__/article/details/80549202 使用 typ ...

  4. 函数指针的声明和使用

    C语言高级进阶 函数指针 学习内容 函数指针是指向函数的指针变量. 因此"函数指针"本身首先应是指针变量,只不过该指针变量指向函数.这正如用指针变量可指向整型变量.字符型.数组一样 ...

  5. typedef 定义函数指针

    原文地址:typedef 定义函数指针作者:兰音 (一)简单的函数指针的应用. //形式1:返回类型(*函数名)(参数表) char (*pFun)(int); char glFun(int a){ ...

  6. 用typedef定义函数指针类型(转)

    typedef可以用于定义函数指针类型: [语法] typedef <返回类型> (*<函数类型名>)(参数表) typedef <返回类型> (<类名> ...

  7. c/c++中typedef与函数指针

    读linux代码时,常常见到形如 typedef void (*irq_flow_handler_t)(unsigned int irq, struct irq_desc *desc); 的代码. 这 ...

  8. typedef和函数指针定义

    2019独角兽企业重金招聘Python工程师标准>>> 用typedef为一个函数指针类型起别名 typedef int (*p1)(int,int); 定义一个函数指针 int ( ...

  9. C/C++中如何使用typedef给函数指针取别名使其更具可读性

    举个小列子 #include <stdio.h> void e_g(int a) {printf("a=%d", a); }typedef void(*FIRST_FU ...

最新文章

  1. 人工智能火了 高端人才成了香饽饽
  2. 小朋友学C++(1)
  3. 多行单列CV小技能----Alt加鼠标滚轮
  4. CentOS下Samba文件服务器的安装与配置
  5. 如何查找涉密文件_企业如何处理涉密信息文件?这四点必知
  6. c#获取网络时间并同步本地时间
  7. Ubuntu Thinkphp page not found
  8. Kodak Preps 8 for Mac中文破解版永久激活教程
  9. uni-app app开发对接网易云信IM
  10. ubuntu中安装flash播放器
  11. flutter ListView.separated使用
  12. 敏捷软件开发-薪水支付案例学习
  13. 把精力专注在“一件事”上的林曦老师,太容易让人着迷了!
  14. 表头不一致的多个文件如何按规定表头提取汇总(多个Excel按指定列值提取汇总)工具
  15. c#语言编程:定义person类,再派生学生类如何存放学生的成绩,C#定义全班学生成绩类,包括姓名,学号,C++成绩,英语成绩,数学成绩,平均成绩...
  16. PHP的realpath(...)
  17. C++ 强密码判定与修改
  18. 免疫算法(matlab)---求数的平方和
  19. Oracle之查看当前用户的所有表和表的列-yellowcong
  20. 剪映导出SRT字幕超详细图文教程

热门文章

  1. linux执行指定程序的命令,linux 下使用指定的用户来执行命令
  2. kafka可视化工具_Kafka值得一用的监控系统
  3. 第二届全国计算机安全技能比赛,第2届网络安全技能大赛试题(2018年).PDF
  4. oracle connection 有时能取到有时候又取不到
  5. MySQL约束课堂笔记
  6. 《编译原理》课程教学大纲
  7. 高薪面试题必备之HashMap 的底层原理
  8. 婚纱照嘴巴有点凸好p吗_丑拒80寸奢华大片挂床头,压箱底的婚纱照还能这样摆?...
  9. JVM插桩之一:JVM字节码增强技术介绍及入门示例
  10. 《剑指offer》链表中倒数第k个结点