端口操作程序問題
(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會是多少呢?
}
//運行結果:a=0xFF00;b=0xA400。解釋一下,why?
網友評論:程序寫多了后,你就會不太記得這些自動類型轉換的規則了,所以強制轉換是必要的,還有有些數據類型在不同編譯器種會有差異,在調試時留意一下就好,寫程序可能容易,但調試的技巧就不是一兩句話能說的清了。
還有,程序多幾行,少幾行其實沒什么關系的,你就是把它寫在一行里,也不見得就是最優的。
網友評論:學