4.3.2. register
Değişkenler
register
bellek sınıfı
auto
bellek sınıfı ile yakından ilgilidir.
Bu iki sınıf için etki alanı ve yaşam süresi kuralları aynıdır, ve
register
, tıpkı auto
gibi,
fonksiyonlar dışında anlamsızdır. Eğer bir değişken
register
sınıfından tanımlanmışsa,
derleyici onu makinenin hızlı bellek yazmaçlarına yerleştirmeye
çalışır. Bu tür yazmaçlardan sınırlı sayıda olduğu için, sadece ilk
birkaç register
değişkeni gerçekten yazmaçlarda
saklanır, diğerleri otomatik değişkenler gibi işlem görürler. Yani, bir
register
bildirimi derleyiciye sadece bir öneri
özelliği taşır. Böylece, eğer bir önceki altkısımda tanımlanmış değişkenlere
gerçekten hızlı erişmeyi istiyorsak
register int i; register char kar, x;
yazarız.
Ana bellekte depolanmayabilecekleri için, register
değişkenlerine tekli &
işleci uygulanamaz. Ayrıca,
diziler gibi karmaşık
tipten bazı veriler
register
olamazlar; ancak bu sistemden sisteme
değişebilir.
register
bellek sınıfından
en iyi şekilde yararlanmak için, sadece birkaç değişkeni bu tipten
tanımlamalısınız. Bunlar en çok kullanılanlar olmalıdır. (Örneğin döngü
sayaçları.) Mümkün olduğu kadar kullanıldıkları program koduna yakın
tanımlanabilmeleri için de blok içine alın. Fonksiyon parametreleri de
register
bellek sınıfından
tanımlanabilirler. Bu bölümün sonundaki örneğe bakınız.