#include <stdio.h> #include <malloc.h> #include <memory.h> #define DECLARATION int (*ptr)(int x,int y) #define DEFINITION(x,y) ptr(x,y) int sum(int x,int y){ return(x+y); } void main() { int a,b,c; typedef struct { int r; DECLARATION; //int (*ptr)(int x,int y); } mystr; scanf("%d,%d",&a,&b); // //mystr stru; //stru.ptr=sum; //c=stru.ptr(a,b); //printf("a=%d,b=%d,sum=%d/n",a,b,c); /// typedef mystr *struc; struc stru; stru=(struc)malloc(sizeof(mystr)); memset(stru,0,sizeof(mystr)); stru->ptr=sum; c=stru->DEFINITION(a,b); //c=stru->ptr(a,b); printf("a=%d,b=%d,sum=%d/n",a,b,c); memset(stru,0,sizeof(mystr)); free(stru); }