#include"stdio.h"

typedef struct day_t Pday_t ;
typedef void (*TInitDay)(Pday_t* day);
typedef void (*TSetDay)(Pday_t* day, int y, int m, int d);
typedef void (*TShowDay)(Pday_t* day);

struct day_t {
    int Day;
    int Month;
    int Year;
    TInitDay init;
    TSetDay  set;
    TShowDay show;
};

void day_init(Pday_t* day) {
    day->Year  = 0;
    day->Day   = 0;
    day->Month = 0;
}

void day_set(Pday_t* day, int y, int m, int d) {
    day->Year  = y;
    day->Month = m;
    day->Day   = d;
}

void day_show(Pday_t* day) {
    printf("%d/%d/%d", day->Day, day->Month, day->Year);
}

Pday_t M_day = {
    .init = day_init,
    .set  = day_set,
    .show = day_show,
};

int main() {
    int y, m, d;
    scanf("%d", &y);
    scanf("%d", &m);
    scanf("%d", &d);

    M_day.init(&M_day);
    M_day.set(&M_day, y, m, d);
    M_day.show(&M_day);

    return 0;
}
纯纯的C语言 面向对象写法