• ARM的C語言編程忠告之C數據類型的有效用法

    2016-08-28

    【這是從書上摘錄的】


    1.對于存放在寄存器中的局部變量,除了8位或16位的算術模運算外,盡量不要使用char和short類型,而要使用有符號或者無符號int類型。除法運算時使用無符號數執行速度更快。


    2.對于存放的主存儲器中的數組和全局變量,在滿足數據大小的前提下,應盡可能使用小尺寸的數據類型,這樣做可以節省存儲空。ARMv4體系結構可以有效地裝載和存儲所有寬度的數據,并可以使用遞增數組指針來有效地訪問數組。對于short類型數組,要避免使用數組基地址的偏移量,因為LDRH指令不支持偏移尋址。


    3.通過讀取數組或全局變量并賦給不同類型的局部變量時,或者把局部變量寫入不同類型的數組或者全局變量時,要進行顯示數據類型轉換。這種轉換是編譯器可以明確、快速地處理,把存儲器中數據寬度比較窄的數據類型擴展,并賦給寄存器中較寬的類型。


    4.由于隱式或者顯式的數據類型轉換通常會有額外的指令周期開銷,所以在表達式中應盡量避免使用。load和store指令一般不會產生額外的轉換開銷,因為它們是自動完成數據類型轉換的。


    5. 對于函數參數返回值應盡量避免使用char和short類型。即使參數范圍比較小,也應該使用int類型,以防止編譯器做不必要的類型轉換。

    天堂网