fpswitch.c

来自「国外网站上的一些精典的C程序」· C语言 代码 · 共 82 行

C
82
字号
/***  FPSWITCH.C - Demonstrates using function pointers in lieu of switches*/#include <stdlib.h>     /* for NULL *//*  Declare your functions here     */char *cpfunc1(int);char *cpfunc2(int);char *cpfunc3(int);void vfunc1(void);void vfunc2(void);void vfunc3(void);void vfunc4(void);/***  Old ways using switch statements*/char *oldcpswitch(int select, int arg){      switch (select)      {      case 1:            return cpfunc1(arg);            case 2:            return cpfunc2(arg);            case 3:            return cpfunc3(arg);                  default:            return NULL;      }}void oldvswitch(int select){      switch (select)      {      case 1:            vfunc1();            break;            case 2:            vfunc2();            break;            case 3:            vfunc3();            break;            case 4:            vfunc4();            break;      }}/***  Using function pointers*/char *newcpswitch(int select, int arg){      char *(*cpfunc[3])(int) = { cpfunc1, cpfunc2, cpfunc3 };      if (select < 1 || select > 3)            return NULL;      return (*cpfunc[select-1])(arg);}void newvswitch(int select){      void (*vfunc[4])(void) = { vfunc1, vfunc2, vfunc3, vfunc4 };      if (select > 0 && select < 5)            (*vfunc[select-1])();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?