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");
    }
    


    
    
  • 相关阅读:
    自动填写数据与自动点击锭钮提交数据
    序列化(Serialization)据为JSONP远端请求
    使用iframe实现同域跨站提交数据
    使用JSONP跨域请求数据
    程序自动化需要一个Windows服务
    SPC-Light显示正常的日期与时间
    使用DDE传输数据至SQL Server
    C# console application executing macro function
    Transfer data to SQL Server from SPC-Light with Excel macros
    MVC应用程序请求密码的功能(二)
  • 原文地址:https://www.cnblogs.com/byfei/p/14104393.html
Copyright © 2011-2022 走看看