這一篇討論了使用 const 、volatile 和 typedef 使變數更容易地使用 ...
使用 const 創建常量和使用 volatie 優化變數
C語言中使用 const 定義常量。
例如:
const INT a = 10;
此處如果添加a = 20;
,編輯器則會報錯,因為此處 a 是只讀的。
在編譯過程中,由 const 定義的常量使用字元表存儲,而不占用記憶體,提高了程式的效率。
註意:為了區別變數和常量,編程時常常使用大寫字母來置頂常量的名稱來提高可讀性。
使用 volatile 定義一個常常需要更改的變數。使用 volatile 定義的變數會在編譯器優化時更新,而不是讀取在寄存器中的副本。
例如:
int data = 1,a,b;
a = data;
...
b=data;
a 在請求變數 data 時,data 的值被寫到了寄存器中。但此時 data 是一個快速更新的值,在程式沒有預料到的時候更改為新的值;而 b 請求 data 的值時,因為寄存器中有現成的 data 值,所以程式會直接將寄存器中過時的 data 值給 b ,因此程式可能出現錯誤。
volatile data a = 1;
int a,b;
a = data;
...
b = data;
但當使用 volatile 變數時,程式會重新讀取 data 的值給 b ,所以能避免此類錯誤。
使用簡短的數據類型名
有時候會遇到長數據類型名,例如 long long int ,不方便引用。此時可使用 typedef 來為 long long int 指定新數據類型名。
例如:
typedef int it;
it data1 =1; /* 使用名稱定義為 it 的 int 型數據類型 */
it data2 =2;