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.