zoukankan      html  css  js  c++  java
  • c语言定义函数指针和typedef简写

      二种方法来定义函数指针

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<Windows.h>
     4 
     5 int add(int a, int b)
     6 {
     7     return a + b;
     8 }
     9 
    10 //void msg(char s[])
    11 //void (*p)(char s[]) 函数指针的定义方法
    12 //void (*)(char *s)   函数指针的类型
    13 
    14 void msg(char s[])
    15 {
    16     MessageBoxA(0,s,s,0);
    17 }
    18 
    19 
    20 void main()
    21 {
    22     //方法1
    23     //定义函数指针的规则
    24     //1.先把函数拿过来  int add(int a, int b) , add就是一个地址
    25     //2.把函数名挖空    int (*p)(int a,int b);
    26     int(*padd)(int a, int b); //函数指针
    27     //3.赋值
    28     padd = add;
    29     printf("%d", padd(11, 19));//30
    30 
    31     //方法2.直接初始化
    32     void(*pmsg)(char s[]) = msg; //定义函数指针并初始化
    33     pmsg("心里的雨倾盆的下");
    34 
    35     getchar();
    36 }

       通过typedef构建

     1 //使用typedef给函数指针类型一个别名
     2 //typedef没有定义新的类型,给已经有的类型起一个别名,减少输入
     3 typedef int(*PADD)(int a, int b); //*类型, PADD存储函数地址
     4 typedef void(*MEG)(char s[]);
     5 
     6 void main()
     7 {
     8     PADD padd1 = add; //创建函数指针
     9     printf("%d",padd1(11,23));
    10     
    11     MEG meg1 = msg;
    12     meg1("心里的雨倾盆的下");
    13 
    14     getchar();
    15 }
  • 相关阅读:
    java内部类
    接口与继承
    数据结构
    数据I/O流
    课程总结
    第六次实训作业异常处理
    常用类的课后作业
    窗口实训1
    实训作业4
    实训作业3
  • 原文地址:https://www.cnblogs.com/loveyouyou616/p/5759046.html
Copyright © 2011-2022 走看看