求指点这段程序的含义

#include <reg52.H>

#define unchar unsigned char
#define uint unsigned int 
void zz();

void delay(uint z);
void dep(unchar a,unchar b,unchar c,unchar d,unchar bai,unchar f,unchar shi,unchar ge );
unchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,

0x76,0x38,0x40};
unchar ge,shi,bai,qian,wan,baiwan;
uint t1,sec,min,hour;

void main()
{ zz();t1=0;
while(1)

ge=sec%10;
shi=sec/10;
bai=min%10;
qian=min/10;
wan=hour%10;
baiwan=hour/10;
dep(baiwan,wan,18,qian,bai,18 ,shi,ge);

}
}
void dep(unchar a,unchar b,unchar c,unchar d,unchar bai,unchar f,unchar shi,unchar ge)
{  
P2=0xfe;
P0=table[a];
delay(10);

P2=0xfd;
P0=table[b];
delay(10);

P2=0xfb;
P0=table[c];
delay(10);

P2=0xf7;
P0=table[d];
delay(10);

P2=0xef;
P0=table[bai];
delay(10);

P2=0xDF;
P0=table[f];
delay(10);

P2=0XbF;
P0=table[shi];
delay(10);

P2=0x7f;
P0=table[ge];
delay(10);
}

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=10;y>0;y--);
}

void zz()
{
TMOD=0x10;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET1=1;
TR1=1;

}
void yy() interrupt 3
{
TH1=(65536-50000)/256;

TL1=(65536-50000)%256;
t1++;
if(t1%20==0)
{  

sec++;
if(sec>60)
{ sec=0;
min++;
if(min>60)
{ min=0;
hour++;
if(hour>24)
{  
hour=0;
}
}
}
}
}

Helenr
浏览 153回答 1
1回答

慕田峪7331174

首先,必须明白,凡是被static修饰的变量都会永久保存程序结束前的每一次更改,并且其在内存中是唯一的。然后,代码创建了一个CDummy类,并在该类中声明了一个静态(static)的成员变量n,然后定义了构造函数CDummy()和析构函数~CDummy()。构造函数将在创建对象时被调用,析构函数在删除对象时调用。int CDummy::n=0;讲n初始化为0(这是不必要的,静态变量默认初始化为0,但是对每一个变量进行初始化时良好的编程习惯。)主函数先创建了一个CDummy类的对象a,那么此时构造函数被调用,即n++,执行完该语句后n为1;接着主函数创建了一个对象数组b[5],即创建了5个CDummy类的对象,n++执行5次,此时n为6;同理,CDummy *c=new CDummy;用另一种方式创建了对象c,n再加1,为7,所以第一个输出是7,然后c被删除,析构函数被调用,n--,你变为6,第二个输出是6。最后两句是为了防止执行时窗口一闪而过。一句就够了
打开App,查看更多内容
随时随地看视频慕课网APP