關於代碼效率
———————
MSP430系列的程序設計准則,有利於提高代碼效率。應該指出,這些准則基本上是基於MSP430系列的硬件結構特點而提出的。
1.位域類型的執行時很慢的,所以應當在僅僅為了節省數據存儲空間時才使用位域方式。如果用戶必須使用位域存儲,可以用char或unsigned int 的位屏蔽操作來代替位域操作。
2.在模塊之外不使用的變量應當聲明為static,這樣在編譯時有可能使這些變量分配在寄存器中暫存,從而提高了代碼效率。
———————
MSP430系列的程序設計准則,有利於提高代碼效率。
1.位域類型的執行時很慢的,
2.在模塊之外不使用的變量應當聲明為static,
3.盡可能使用unsigned數據類型。許多情況下,對unsigned數據類型的操作,比對signed數據類型的操作效率更高,尤其對於除法和求模運算更是如此。
4.程序設計中應該使用ANSI-C原型函數。對ANSI函數的調用比對K&S函數的調用效率更高。
5.MSP430系列單片機對16位數據類型的操作效率最高。如:short、int、unsigned
int類型等。一般來說,利用8位數據類型可以節省數據的存儲空間,但這樣並不會減少程序代碼的存儲空間;而對於運用32位數據類型,由於MSP320系列的結構並不直接支持,執行的效率是較低的。
int類型等。一般來說,
6.標量自動變量(scalar auto)通常分配在寄存器中,因此,只要有可能就應該用auto類型而不用static類型。
7.函數的頭兩個參數是用寄存器傳送的,因此,將參數傳遞給函數時,用參數方式常比用static變量效率更高。
8.復制結構和聯合數據類型是開銷很大的操作。應該盡量避免在程序運行中做結構和聯合的賦值操作,避免以結構和聯合數據類型作為函數的參數,避免讓函數返回結構和聯合數據類型。只要有可能,就應該采用指向結構和聯合的指針來實現上述的各種操作。
9.函數中聲明的無初值非標量自動變量(結構、聯合和數組等),會在程序運行中每次調用函數時作數據的復制操作。如果是常量,可以用static
const存儲類來避免發生這種情況。
此外,采用C程序調用匯編子程序的方法也是提高代碼效率的有效手段。
轉述《MSP430系列單片機C語言程序設計與開發》
const存儲類來避免發生這種情況。
此外,
轉述《MSP430系列單片機C語言程序設計與開發》
簡體版的書,所以有些名詞很不習慣!
Tags:
C語言