我写了“轻量级”时间库,我有这样的 struct 和 typedef:
struct tmt {
uint16_t year;
uint8_t month;
uint8_t day;
uint8_t hour;
uint8_t minute;
uint8_t second;
uint8_t weekday;
uint8_t is_dst;
};
typedef struct tmt tm_t;
我有一个返回的函数tm_t
:
tm_t rtc_get_current_time(void){
tm_t tm;
xSemaphoreTake(rtc_mutex, RTC_MUTEX_MAX_WAIT);
tm = rtc.current_time;
xSemaphoreGive(rtc_mutex);
return tm;
}
我想像这样使用它:
tm_t s;
s = rtc_get_current_time(); // error is here
我收到此错误:
从类型'int'分配给类型'tm_t' {aka'struct tmt'}时不兼容的类型
我也尝试像这样更改函数和变量:
struct tmt rtc_get_current_time(void){
tm_t tm;
xSemaphoreTake(rtc_mutex, RTC_MUTEX_MAX_WAIT);
tm = rtc.current_time;
xSemaphoreGive(rtc_mutex);
return tm;
}
struct tmt tm = rtc_get_current_time();
我做错了什么?