zoukankan      html  css  js  c++  java
  • 函数数组

    实现方法1:

    #include <iostream>
    using namespace std;
    
    int func1(int a, int b)
    {
    	return a+b+10;
    }
    int func2(int a, int b)
    {
    	return a+b+20;
    }
    int func3(int a, int b)
    {
    	return a+b+30;
    }
    int func4(int a, int b)
    {
    	return a+b+40;
    }
    int func5(int a, int b)
    {
    	return a+b+50;
    }
    
    int func_all(int type, int a, int b)
    {
    	switch(type)
    	{
    	case 0:  return func1(a,b);
    	case 1:  return func2(a,b);
    	case 2:  return func3(a,b);
    	case 3:  return func4(a,b);
    	case 4:  return func5(a,b);
    	}
    	return 0;
    }
    
    void main()
    {
    	// PF_CALC pFuncList[5] = {func1, func2, func3, func4, func5};
    
    	for (long k=0; k<5; k++)
    	{
    		printf("Test Func %d (2, 4): %d
    ",
    			k, func_all(k,2,4));
    	}
    	system("pause");
    }
    
    实现方法2:

    #include <stdio.h>
    #include <stdlib.h>
    
    typedef int (*PF_CALC) (int a, int b);
    
    int func1(int a, int b)
    {
    	return a+b+10;
    }
    int func2(int a, int b)
    {
    	return a+b+20;
    }
    int func3(int a, int b)
    {
    	return a+b+30;
    }
    int func4(int a, int b)
    {
    	return a+b+40;
    }
    int func5(int a, int b)
    {
    	return a+b+50;
    }
    
    void main()
    {
    	PF_CALC pFuncList[] = {&func1, &func2, &func3, &func4, &func5};
    
    	for (long k=0; k<5; k++)
    	{
    		printf("Test Func %d (2, 4): %d
    ",
    			k, pFuncList[k](2,4));
    	}
    	system("pause");
    }
    
    3.
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef int (*NetMsgFunction) (int a, int b);
    
    NetMsgFunction pFuncList[10];
    
    int func1(int a, int b)
    {
    	return a+b+10;
    }
    int func2(int a, int b)
    {
    	return a+b+20;
    }
    int func3(int a, int b)
    {
    	return a+b+30;
    }
    int func4(int a, int b)
    {
    	return a+b+40;
    }
    int func5(int a, int b)
    {
    	return a+b+50;
    }
    
    void Reg(int nMsgId,NetMsgFunction fuc)
    {
    	pFuncList[nMsgId] = fuc;
    }
    
    void main()
    {
    	Reg(0,func1);
    	Reg(1,func2);
    	Reg(2,func3);
    	Reg(3,func4);
    	Reg(4,func5);
    	for (long k=0; k<5; k++)
    	{
    		printf("Test Func %d (2, 4): %d
    ",k, pFuncList[k](2,4));
    	}
    	system("pause");
    }
    


    
       
    
    
  • 相关阅读:
    WHERE col1=val1 AND col2=val2;index exists on col1 and col2, the appropriate rows can be fetched directly
    MySQL 交集 实现方法
    MBProgressHUD的使用
    Xcode4 使用 Organizer 分析 Crash logs(转)
    SimpleXML 使用详细例子
    PHP的XML Parser(转)
    iPhone,iPhone4,iPad程序启动画面的总结 (转)
    Pop3得到的Email 信件格式介绍
    yii总结
    隐藏Tabbar的一些方法
  • 原文地址:https://www.cnblogs.com/byfei/p/6389794.html
Copyright © 2011-2022 走看看