next up previous contents
Next: 2. 自動変数 Up: 1. 記憶クラス Previous: 1. 記憶クラス

1. レジスター変数

C言語はいわば高級アセンブラとしての機能が用意されているが、その一つが レジスター変数である。レジスター変数は文字通り CPU 内部に用意された レジスターと呼ばれる記憶場所 を直接利用するために用意されたもので、もしレジスターが利用できる場合には レジスターに直接割り当てられ、メモリは利用されない(レジスターが使えない 場合には次の自動変数と同じになる)。その用途は CPU の内部にあることに よる高速性である。つまり、プログラマーが明示的にレジスターを利用する事で、 より最適なプログラムが書けるようにしているものである。

レジスター変数の宣言は、以下のように行う。


    register int x;

但し、現実にはよほど慣れたプログラマーでない限り、レジスター変数は使う 必要はありません。現在のコンパイラーは最適化が進んでいるので、自動的に レジスターへの割り当てを行うからです。



Noriyo Kanayama