zoukankan      html  css  js  c++  java
  • 转移表(表驱动)

    函数指针数组的使用:转移表(表驱动)->表驱动的名称出自《code complete》中文《代码大全》
    对于一个函数来说,条件或循环语句越多,函数就越复杂
    引入“圈复杂度”描述一个函数的复杂程度
    拆分函数是降低圈复杂度的有效方法之一,表驱动法就是其中之一
     1 #include<stdio.h>
     2 int Add(int x, int y)
     3 {
     4  return x + y;
     5 }
     6 int Sub(int x, int y)
     7 {
     8  return x - y;
     9 }
    10 int Mul(int x, int y)
    11 {
    12  return x * y;
    13 }
    14 int Div(int x, int y)
    15 {
    16  return x / y;
    17 }
    18 int Menu()
    19 {
    20  printf("1.add
    ");
    21  printf("2.sub
    ");
    22  printf("3.mul
    ");
    23  printf("4.div
    ");
    24  printf("请输入您的选择:");
    25  int choice = 0;
    26  scanf("%d",&choice);
    27  return choice;
    28 }
    29 typedef int(*pfunc)(int a, int b);
    30 void Run()
    31 {
    32  pfunc arr[] = {
    33   Add,
    34   Sub,
    35   Mul,
    36   Div
    37  };
    38  int choice = Menu();
    39  //arr[choice-1](10,20);
    40  //上面的代码有也可以分解为:
    41  pfunc func = arr[choice - 1];
    42  printf("%d",func(10,20));
    43 }
    44 int main()
    45 {
    46  Run();
    47  return 0;
    48 }
  • 相关阅读:
    curl -L 跟随跳转
    Http报头Accept与Content-Type的区别
    curl 发送json请求
    IntelliJ 中类似于Eclipse ctrl+o的是ctrl+F12
    Spring AOP
    Windows下Nginx配置SSL实现Https访问(包含证书生成)
    @Retention n. 保留
    Exchanger使用
    Semaphore使用
    UVA12493
  • 原文地址:https://www.cnblogs.com/cuckoo-/p/10466496.html
Copyright © 2011-2022 走看看