基本介紹
暫存器變數的定義形式是:
register 類型標識符 變數名
/* 程式1 */
main ( )
{
register int temp, i;
for ( i=0; i<=30000; i++ )
for ( temp=0; temp<=100; temp++ ) ;
printf ("ok\n");
}
/* 程式2 */
#include <stdio.h>
main( )
{
int temp, i;
for ( i=0; i<=30000; i++ )
for ( temp=0; temp<=100; temp++ ) ;
printf ("ok\n");
}
這兩個程式中,前者使用了兩個暫存器變數,後者使用了兩個自動變數程式除此之外完全一樣。但運行時感覺的執行速度是不同的,前者使用暫存器變數的程式要比後者使用自動變數的程式要快。(如果在Turbo C的環境下運行程式2,則應該將編譯器最佳化選項"use register variable"開關關上(OFF),否則,編譯器自動最佳化程式使用暫存器,兩個程式會得到相同的結果。)
由於register變數使用的是硬體CPU中的暫存器,暫存器變數無地址,所以不能使用取地址運算符"&"求暫存器變數的地址。