在入門單片機時,想必大家都都會遇到一下這種情況。
如何把兩個8位數(shù)據(jù)和在一起變成16位數(shù)據(jù)呢?一般情況下大家都會這樣做,我最初是也是這么做的。
方法1【使用移位指令】
方法2【使用指針】
方法3【強制指針類型轉(zhuǎn)換】
以上這三種方法都是沒有錯誤的,但在keil編譯器中編譯出的結(jié)果是不一樣的。第三種方法編譯出的代碼會更簡潔今天就交給大家第4種方法。
方法4【聯(lián)合體】此時d=0x1122;
這里就是利用了聯(lián)合體union的特性來實現(xiàn)把兩個8位數(shù)據(jù)合并成一個16位數(shù)據(jù)的方法。在C語言里操作指針最容易出現(xiàn)錯誤,所以在遇到這樣類似的問題大家不妨使用聯(lián)合體的方式進行處理數(shù)據(jù),既不容易出現(xiàn)錯誤,生成的代碼又簡潔。
如果不明白聯(lián)合體union用法的同學(xué),去問問百度吧。