我想知道如何在它所在的文件之外使用 typedef 结构。我的意思是,我有这个:
在一个名为“rtc_i2c.c”的文件中,我有------------------------------------
#include "rtc_i2c.h"
struct time_date_str
{
char year;
char month;
char date;
char day;
char hour;
char minute;
char second;
};
int RTCGetTime(TimeDate *timdatstrptr)
{
timdatstrptr -> second = 0x12;
return 0;
}
然后在一个名为“rtc_i2c.h”的文件中我有-----------------------------
#ifndef RTC_I2C_H
#define RTC_I2C_H
typedef struct time_date_str TimeDate;
#endif
在“main.c”中,我有 ----------------------------- --------
#include "rtc_i2c.h"
TimeBase *TimeDateData;
void main(void)
{
char DateTimeASCII[20];
RTCGetTime(TimeDateData);
DateTimeASCII[0] = ????????
}
然后,当我进入我的代码时,我进入 RTCGetTime 并在监视窗口中看到“timdatstrptr -> second = 12”分配正确执行。但问题在外面。如果我将“TimeDateData --> second”放在带有 ???????? 的空格中,编译器会生成错误。所以我不知道我应该如何通过指针访问全局定义数组的内容。
如果我理解,声明为“TimeBase *TimeDateData”的指针指向我的数组,并使用“-->”访问,因为它是一个指针。我错了吗?这是如何运作的?
任何人都可以帮助我吗?谢谢!!