题解 | #KiKi定义电子日历类#

KiKi定义电子日历类

https://www.nowcoder.com/practice/e4c67097cdb242d9a3f38b7cfe839396

#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语言 面向对象写法#面向对象#
全部评论
Pday_t M_day={ .init=day_init, .set=day_set, .show=day_show, }; 大佬解释一下这一段什么意思
点赞 回复
分享
发布于 2023-04-20 22:05 山西
看样子像结构体里的属性赋值。
点赞 回复
分享
发布于 2023-07-28 16:55 浙江
联易融
校招火热招聘中
官网直投
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* day应该改成day_t* day
点赞 回复
分享
发布于 03-17 01:10 四川

相关推荐

14 1 评论
分享
牛客网
牛客企业服务