• c语言的函数指针和函数指针数组的简单demo


    今天,简单记录一下,函数指针和函数指针数组的使用,废话不多说,直接贴上代码,里面有详细的注释,方便以后查阅。

     

     1 #include <cstdio>
     2 #include <Windows.h>
     3 
     4 typedef void(*myFun)(const char*);//这里定义的一个函数类型(返回值为void,参数为const char*),类型名为myFun,使用见第28行
     5 
     6 void(*func)(const char* name); //声明了一个函数指针,指针名为func
     7 
     8 //下面定义的3个函数,就函数名不一样,函数体是一样的,这里只是方便演示,意思一下而已。
     9 void func1(const char* name)
    10 {
    11     printf("this is %s function
    ",name);
    12 }
    13 void func2(const char* name)
    14 {
    15     printf("this is %s function
    ", name);
    16 }
    17 void func3(const char* name)
    18 {
    19     printf("this is %s function
    ", name);
    20 }
    21 
    22 //定义一个函数指针数组(返回值为void,参数为const char*的函数指针(名)都可以放在这数组里)
    23 void(*fun[])(const char* name) =
    24 {
    25     func1,func2,func3
    26 };
    27 
    28 //定义一个选择使用哪个函数的函数,返回值是函数指针
    29 myFun choiceFun(const char* name)  //如果没用第三行的typedef定义,这里应该这样写:void (*choiceFun(const char* name))(const char*){....函数体}
    30 {
    31     if (0 == strcmp(name, "1"))
    32     {
    33         return fun[0];
    34     }
    35     else if (0 == strcmp(name, "2"))
    36     {
    37         return fun[1];
    38     }
    39     else if (0 == strcmp(name, "3"))
    40     {
    41         return fun[2];
    42     }
    43     else
    44     {
    45         printf("未找到相应函数,将返回null指针
    ");
    46         return NULL;
    47     }
    48 }
    49 
    50 
    51 int main()
    52 {
    53     char input_self[127] = {0};//用来接收用户的输入
    54     
    55     while (1)
    56     {
    57         printf("请输入方法几?
    ");
    58         if (scanf("%s", &input_self) != EOF) //按下ctrl+z就代表结束
    59         {
    60             func = choiceFun(input_self); //根据用户的输入来决定返回哪一个函数
    61             if (func != NULL) //确认函数指针有效,才能执行!
    62             {
    63                 func(input_self);
    64             }
    65         }
    66         else
    67         {
    68             printf("您选择了退出,bye!
    ");
    69             break;
    70         }
    71     }
    72     system("pause");
    73     return 0;
    74 }

     

    最后是运行界面:

     

  • 相关阅读:
    多条件查询测试用例设计方法(1)—Pairwise(转)
    单例饿汉式和饱汉式各自的有缺点(转)
    Intellij IDEA生成JavaDoc(转)
    Linux常用命令分类
    Linux 常用命令
    数据库简单测试
    postman参数为Json数据结构
    WEB测试常见BUG
    APP应用测试技巧
    APP软件半成品测试技巧
  • 原文地址:https://www.cnblogs.com/dz-study/p/11651392.html
Copyright © 2020-2023  润新知