這種風格的程序也就考試會用到了,生產環境寫這種代碼要被罵死。在速度不是至關重要的環節(人操作按鍵速度遠低於掃描速度,掃描程序不必過分苛求運行效率)過分強調代碼運行速度(何況這堆代碼完全沒效率可言)而犧牲代碼可讀性,會給日後維護代碼帶來災難(想象壹下滿屏位移操作代碼,而妳要從裏面查出哪個位移操作移反了或者'|'寫成'&'的時候)。
比如上面的代碼,for循環的i變量,為什麽不能直接賦初值為0xFE,而非要賦為0x01,然後取反?這樣我就能直接令 output = 0xFF & i 了
key的話我可以
key_h = (i << 8) & 0xF0;
key_l = temp & 0x0F;
key = key_h | key_l;
是不是直觀不少
另外,涉及按鍵掃描程序,按鍵按下之後的信號波形有可能因為器件原因信號短時間出現波動,這段程序並沒有做抖動處理,會造成實際只按了壹次按鍵而檢測到按了好幾次的情況(主頻越高的設備這個情況越嚴重)。
實際程序中會根據按鍵設備廠商給的參數,進行防抖處理。
最後,壹個建議就是少用temp這類意義不明確的命名