Standart C Programlama Dili


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 alt kı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.