【发布时间】:2013-10-15 13:05:35
【问题描述】:
我正在尝试为时间格式声明一个 typedef 联合,如下所示,在我的标题中:
typedef union _u_time
{
unsigned long l_time;
struct {
unsigned char :8;
unsigned char HRS;
unsigned char MIN;
unsigned char SEC;
}BYTES;
}u_time;
然后我尝试以这种方式使用它:
void RTC_Set(long date, u_time time)
{
RTC_SetTime(time);
RTC_SetDate(date);
}
编译项目没问题。我正在使用基于 Eclipse 的 Renesas 的 E2Studio IDE,问题是 u_time 在我的 *.c 文件中没有解析,我无法使用自动完成功能,这是 Eclipse 的一大优势......
我发现解决所有链接并自动完成工作的唯一方法是在函数原型中添加联合,如下所示:
void RTC_Set(long date, union u_time time)
{
RTC_SetTime(time);
RTC_SetDate(date);
}
有什么想法吗?
【问题讨论】:
-
您显示的代码是否正确?在显示的代码中,
u_time和union _u_time有效且相同,而union u_time不存在。 -
只有我不知道你在问什么吗?
-
@zubergu,我以为我知道,但我错了。仔细阅读后,似乎他的问题只是Eclipse自动补全。
-
事实上,我想使用我的 RTC_Set 函数,因为提到的是第二个代码块“void RTC_Set(long date, u_time time)”,因为我的联合类型已经在标题中声明。我不明白为什么我需要添加它来解决联合类型...
-
举个更清楚的例子,如果在 C 函数中我使用声明为这样的时间变量“u_time time;” , u_time 没有被重新使用,我不能使用自动完成,但编译是可以的。如果我这样声明“union u_time time;”一切都好...
标签: c eclipse autocomplete typedef unions