我有一个名为
的结构struct binary
{
uint32_t time;
uint16_t id;
uint8_t data[8];
};
在我读取CAN帧的函数中,我有一个名为bin的结构变量。
struct binary bin;
当我为我的结构分配时间时如下
bin.time = tm-> tm_mon+1"."tm->tm_mday"_"tm->tm_hour":"tm->tm_min":"tm->tm_sec;
它显示错误消息
error:expected ';' before string constant
bin.time = tm-> tm_mon+1"."tm->tm_mday"_"tm->tm_hour":"tm->tm_min":"tm->tm_sec;
如何将时间传递给结构成员时间以后我想在我的fwrite函数中使用以下结构,如下所示:
fwrite(&bin,sizeof(bin),1,fPtr);
提前致谢。
答案 0 :(得分:1)
当我为我的结构分配时间时如下
// bin.time is a uint32_t
bin.time = tm-> tm_mon+1"."tm->tm_mday"_"tm->tm_hour":"tm->tm_min":"tm->tm_sec;
当然,这意味着将struct tm
保存为time_t
。
如果tm
是本地时间,请使用
#include <stdint.h>
#include <time.h>
time_t t = mktime(tm);
if (t == (time_t)-1) {
Handle_conversion_failure();
}
if (t < 0 || t > UINT32_MAX) {
Handle_range_failure();
}
bin.time = (uint32_t) t;
答案 1 :(得分:0)
这句话错了: -
package
要存储上述值,您必须将时间更改为如下字符串: -
bin.time = tm-> tm_mon+1"."tm->tm_mday"_"tm->tm_hour":"tm->tm_min":"tm->tm_sec;
现在在代码中: -
char time[30];//uint32_t time; As you are new to C I ma not using a char pointer here.