端口操作程序問題
(2011/10/8 9:31:00)
//嘿嘿
voidmain()
{
unsignedcharx,y;
unsignedinta,b;
P0=0xdb;
x=(~P0)|0x80;
y=~P1;
a=(((~P0)|0x80)<<8)|(~P1);//a會是多少呢?
//^-----x----^^-y-^
b=(x<<8)|y;//b會是多少呢?
}
//運(yùn)行結(jié)果:a=0xFF00;b=0xA400。解釋一下,why?
網(wǎng)友評論:程序?qū)懚嗔撕螅憔蜁惶浀眠@些自動類型轉(zhuǎn)換的規(guī)則了,所以強(qiáng)制轉(zhuǎn)換是必要的,還有有些數(shù)據(jù)類型在不同編譯器種會有差異,在調(diào)試時留意一下就好,寫程序可能容易,但調(diào)試的技巧就不是一兩句話能說的清了。
還有,程序多幾行,少幾行其實(shí)沒什么關(guān)系的,你就是把它寫在一行里,也不見得就是最優(yōu)的。
網(wǎng)友評論:學(xué)