在論壇里看到了一樣的問題但是我聲明了結構體為啥還是報錯
提前謝謝大佬解答
代碼主函數
void main ()
{
struct ntime
{
int year;
int month;
int day;
int clock;
int minute;
int second;
};//創建時間結構體變量
// struct ntime n_time;
//
while(1)
{
time (2024,2,4,14,2,5);
// n_time=o_time;
LCD_Init();
LCD_ShowNum(1,1,o_time.year,4);
LCD_ShowString(1,5,".");
LCD_ShowNum(1,6,o_time.month,2);
LCD_ShowString(1,8,".");
LCD_ShowNum(1,9,o_time.day,2);
LCD_ShowString(1,11,"(^▽^ )");
LCD_ShowNum(2,1,o_time.clock,2);
LCD_ShowString(2,3,":");
LCD_ShowNum(2,4,o_time.minute,2);
LCD_ShowString(2,6,":");
LCD_ShowNum(2,7,o_time.second,2);
}
}
時間函數
#include <REGX52.H>
#include "Nixie.h"
#include "Delay1ms.h"
struct ntime time (year,month,day,clock,minute,second)
{
struct ntime
{
int year;
int month;
int day;
int clock;
int minute;
int second;
};//創建時間結構體變量
int a []={1,3,5,7,8,10,12};
int Maxday=0;
int i=7;
struct ntime o_time;
o_time.year=0;
o_time.month=0;
o_time.day=0;
o_time.clock=0;
o_time.minute=0;
o_time.second=0;
second++;
Delay1ms(100);
if(second>59)//秒進一
{
second=0;
minute++;
if(minute>59)//分進一
{
minute=0;
clock++;
if(clock>23)//時進一
{
clock=0;
day++;
while(i--)//判斷大小月
{
if(month==a[i])
{
Maxday=31;
}
else if(month==2)
{
if(year%4==0)
{
Maxday=29;
}
if(year%4!=0)
{
Maxday=28;
}
}
else
{
Maxday=30;
}
}
if(day>Maxday-1)
{
day=1;
month++;
if(month>12)
{
month=1;
year++;
}
}
}
}
}
o_time.year=year;
o_time.month=month;
o_time.day=day;
o_time.clock=clock;
o_time.minute=minute;
o_time.second=second;
return o_time;
}
|