-
iOS Eğitimlerine Başlarken...
-
Objective-C Dilinde Kütüphaneler
-
Objective-C'de Sınıf Arayüzü (Class Interface) Nasıl Tanımlanır?
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler Giriş
-
Sabitlerden Oluşan İfadeler
-
int Türü İfadeler
-
float Türündeki İfadeler
-
Gösterge İfadeleri
-
Gösterge İfadeleri ve Değerleri
-
Operatörlerin Öncelikleri ve Birleşme Sıraları
-
İkili Aritmetiksel Operatörler
-
Aritmetiksel Atama Operatörleri
-
İlişkisel Operatörler
-
Mantıksal Operatörler
-
Bit Düzeyinde İşlem Gören Operatörler
-
Öteleme Operatörleri
-
Bit Düzeyinde Mantıksal Operatörler
-
Bit Düzeyinde İşlem İçin Bir Örnek: Sınav Değerlendirme Programı
-
Bit Düzeyinde Atama Operatörleri
-
Cast Operatörü
-
sizeof Operatörü ve Bir Örnek Program
-
Tekli Operatörler
-
Koşul Operatörü
-
Bellek Operatörleri
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler Giriş
-
Kontrol Yapıları
-
Döngü (Loop) Oluşturma
-
Miras Alma (Inheritance), Çok Biçimlilik
-
Ön İşlemci Komutları ve Makrolar
-
Ön İşlemci Komutları ve Makrolar Giriş
-
Basit Makro Tanımları
-
Objective-C Ön İşlemcisi
-
Makrolarda Argümanlar
-
Önceden Tanımlanmış Değerlere Referans Verme
-
Gerçek Parametrelerde Bir Dizi İfadenin Kullanılması
-
Makro Tanımlamada # ve ## Operatörleri
-
Makro Tanımın İptal Edilmesi: undef Komutu
-
Dosya İçeriklerini Programa Katma: include Komutu
-
Şarta Bağlı Derleme İşlemi: #if Komutu
-
#ifdef Komutu
-
#ifndef Komutu
-
#error ve #pragma Direktifleri
-
Ön İşlemci Komutları ve Makrolar Giriş
-
Diziler ve Sözlük Nesneleri
-
Diziler ve Sözlük Nesneleri Giriş
-
Bir Dizi Nesnesi Oluşturmak
-
Dizideki Eleman Sayısını Bulmak
-
Bir Dizi Nesnesinin Elemanlarına Erişme
-
Dizi Elemanlarına Hızlı Numaralama (Fast Enumeration) Yöntemi ile Erişmek
-
Dizi Nesnesine Eleman Eklemek
-
Dizi Nesnesinde Araya Eleman Ekleme
-
Dizi Nesnesinin Bazı Elemanlarını Silme
-
Dizi Nesnelerini Sıralama
-
Diziler ve Sözlük Nesneleri Giriş
-
Fonksiyonlar
-
Fonksiyonlar Giriş
-
Objective C Dilinde Bir Fonksiyonun Yapısı
-
Fonksiyonların Tanımlanması
-
Fonksiyonlarla İlişkili Terimler
-
return Deyimi
-
Fonksiyon Çağrıları ile İlgili Örnek C Programları
-
Fonksiyon Çağırma Teknikleri
-
Fonksiyonları Değer ile Çağırma
-
Fonksiyonları Referans ile Çağırma
-
İki Boyutlu Dizinin Argüman Olarak Gönderilmesi
-
C Dilinde Özyineli (Rekürsif) Fonksiyonlar
-
Fonksiyonlar Giriş
-
Dinamik Bağlama, id Veri Tipi
-
Bellek Sınıfları
-
Dosya İşlemleri
-
Nesne Yönelimli Programlama
-
Algoritmaya Giriş
register tipi değişkenler özellikleri itibarı ile diğer sınıflardan ayrılırlar; çünkü, register tipi değişkenlere bellekte (memory, RAM) değil, CPU yazmaçları (registers) içinde yer ayrılır. Programcı, register tipi bir değişken için bildirimde bulunduğu zaman, gerçekte C derleyicisine, CPU'yu bir bellek hücresi gibi kullanmasını önermektedir.
Register tipi değişkenlerin tanımlanma ve kullanılma nedeni, programın daha etkin ve daha hızlı çalışır hale getirilme isteğidir. Çünkü doğal olarak, bilgisayarın CPU yazmacındaki bir veriye ulaşma zamanı bir bellek hücresindeki veriye ulaşma zamanına göre çok daha kısadır.
Kullanıcının bu tavsiyesi, C derleyicisi tarafından her zaman yerine getirilmez. Bazı C derleyicileri, bu tavsiyeyi tümden ihmal edebilir. Bazı C derleyicileri ise, icra zamanının en iyilenmesi amacıyla kullanıcı belirtmese bile bazı değişkenleri özellikle döngü parametrelerini register değişkeni olarak kullanır.
Derleyici, kullanıcının register sınıfında tanımladığı değişkenlere ait tavsiyeyi dikkate almazsa bu durumda bu değişkenler default sınıf olarak auto sınıfında kabul edileceklerdir.
Register sınıfındaki değişkenler sadece bir blok içinde tanımlanırlar. Bu değişkenlere yer ayrılması ve bu yerin serbest bırakılması işlemleri tamamen auto sınıfındaki değişkenlerde olduğu gibidir.
Register sınıfı değişkenin tanımlandığı blok içine girilir girilmez, register tipi değişkene yer ayrılır ve bloktan çıkılır çıkılmaz da bu yer iptal edilir ya da serbest bırakılır.
Register sınıfındaki değişkenlere bellek yerine yazmaçlarda yer ayrıldığı için bu değişkenlerin başına bellek adresi operatörü olan & sembolü konulamaz. Bir değişken, bir gösterge işlemleri içinde kullanılacaksa bu durumda bu değişken register tipinde tanımlanmamalıdır.
ÖRNEK:
#import <Foundation/Foundation.h>
int main(int argc,char *argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
int s=0;
{
register i;
for (i=1; i<=100; i++)
s+=i;
}
NSLog(@"\n1+2+..100=%i\n\n",s);
[pool drain];
return 0;
}
PROGRAMIN ÇIKTISI:
1+2+..100=5050
Yukarıdaki programda, içteki bloktan çıkılınca i’nin değeri aşağıdaki gibi yazdırılmak istenirse:
: error C2065: 'i' : undeclared identifier şeklinde bir hata mesajı alınacaktır; çünkü i değişkeni sadece tanımlanmış olduğu iç blok içinde (“içeren blok”) geçerlidir.