typedef int(*p_hobby)(int hour)

typedef struct{
	int gender;
	int heigh;
	p_hobby	hobby;
}DETAIL_T

typedef struct{
	int name;
	DETAIL_T* DETAIL;
}A_Type;

/*A_file.c*/

A_Type arr1[] = {
	{James, Jemes_detail},	//James is defined somewhere like #define James 1
}

/*B_file.c*/
DETAIL_T Jemes_detail[]={
	{BOY, 183, BASKETBALL},
	{BOY, 200, SCOOTOR},
	{BOY, 150, SWIMMING},
}

/*C_file.h*/
#define BASKETBALL	PLAY_BASKETBALL
#define SCOOTOR		RIDE_SCOOTER
#define SWIMMING	GO_SWIMMING

/*D_file.c*/
int PLAY_BASKETBALL(int time){
	/*implementation*/
}
int RIDE_SCOOTER(int time){
	/*implementation*/
}
int GO_SWIMMING(int time){
	/*implementation*/
}
