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