现在的位置: 首页 > 综合 > 正文

函数指针实现不同数目形参的函数调用

2013年05月10日 ⁄ 综合 ⁄ 共 614字 ⁄ 字号 评论关闭

#include <stdio.h>
typedef int (* func_t)(void *,void *,void *, void *);
int add(void * a,void *b){ return (*(int *)a+ *(int *)b);}
int singel(void * a){ return *(int *)a;}
int Square(void * a,void *b){ return (*(int *)a * *(int *)b);}
int Cubic(void * a,void *b, void *c){ return (*(int *)a * *(int *)b  * *(int *)c);}
int x4(void * a,void *b, void *c,void *d){ return (*(int *)a * *(int *)b  * *(int *)c * *(int *)d);}
void print_result(func_t func){
    int a = 1, b=2, c=3, d=4;
    printf("%d %d %d \n%d\n",a,b,c,func(&a,&b,&c,&d));
    }
int main()
{
    print_result((func_t)add);
    print_result((func_t)singel);
    print_result((func_t)Square);
    print_result((func_t)Cubic);
    print_result((func_t)x4);
}

抱歉!评论已关闭.