請(qǐng)教:在C51中,如何將絕對(duì)地址賦給結(jié)構(gòu)變量的成員?請(qǐng)看以下程序段:
union u{ //定義一個(gè)共用體類型
uint word;
struct{uchar hi;uchar lo;}bytes;}; //嵌套定義一個(gè)結(jié)構(gòu)類型變量
union u nt0; //定義一個(gè)共用體變量nt0
nt0.bytes.hi=TH0; //將TH0的值賦給結(jié)構(gòu)成員hi
nt0.bytes.lo=TL0; //將Tl0的值賦給結(jié)構(gòu)成員lo
由于51單片機(jī)的定時(shí)器T0高字節(jié)TH0和低字節(jié)TL0地址不連續(xù),無法使用C51的擴(kuò)展類型SFR16,不得已定義了一個(gè)共用體變量,并將TH0和TL0的內(nèi)容傳送到hi和li中,以便作為一個(gè)整型數(shù)據(jù)參與運(yùn)算,但運(yùn)算結(jié)果還要傳回來,降低了運(yùn)算速度.
能不能在程序的第三行,定義一個(gè)結(jié)構(gòu)類型變量的同時(shí),將TH0和TL0的絕對(duì)地址賦予變量成員hi和li,或者C51不支持?