#include#include typedef void (* PF)();void add(int a,int b,int *result){ *result=a+b; printf("result:%d\n",*result);}void main(){ int x,y,z; PF pfun = add; x=5; y=4; pfun(x,y,&z);}
typedef void (* PF)(); 换成 typedef void (* PF)(int,int,...); typedef void (* PF)(,...); typedef void (* PF)(int,int,int*); 都可以
但是换成 typedef void (* PF)(...); typedef void (* PF)(int); 不可以。
说明可变形参可以采用直接不指定()或指定前几个再加省略号的形式,直接加省略号不可以,省略号前面必须有逗号。如果指定了确定个的形参,那么就必须与所指向的函数的形参一致。