-
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ş
Objective-C ön işlemcisi, #if komutu sayesinde bazı Objective-C program satırlarının bir şarta bağlı olarak derlenmesine olanak sunar. Bu olanak aşağıdaki durumlarda son derecede yararlıdır:
- Bazı tanımlar, birtakım koşullara bağlı olarak ifade edilebiliyorsa, bu tür tanımları #if komutuyla koşullu olarak gerçekleştirmek programın taşınabilirliğini arttırır.
- Programın bazı satırlarının derlenmesi ve çalıştırılması sadece programın geliştirilme aşamalarında gerekli olup, program son şeklini aldıktan sonra bu tür satırların program listesine dahil edilmesi gerekmeyebilir. Örneğin, bir matematiksel hesaplama işlemleri dizisini gerçekleştiren programda, geliştirme aşamasında, hesaplamaların doğruluğunu kontrol edebilmek için hesaplamanın ekrana yazdırılması yararlı olabilir. Oysa program son şeklini alıp hesaplamaların doğru yapıldığı kanıtlandıktan sonra ara adımların yazdırılmasına gerek yoktur. Bu tür program satırları da #if komutu yardımıyla program listesine katılabilir ya da derleme listesinden çıkartılabilir.
Örneğin;
#if Koşul(Sabit)
satır 1
#else
satır 2
#endif
satırlarıyla, koşul doğruysa ya da sabitin değeri 0’dan farklıysa satır 1 derlenir ve çalıştırılır; aksi takdirde koşul yanlışsa ya da sabitin değeri 0 ise, bu durumda da satır 2 derlenir ve çalıştırılır.
ÖRNEK PROGRAM:
#define GELIS 1
#import <Foundation/Foundation.h>
int main(int argc, char* argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
float s,say,ek,eb;
int i,n;
s=0;
ek=1.7e38;
eb=-1.7e38;
NSLog(@"\nSAYI MIKTARI");
scanf("%d",&n);
for(i=1; i<=n; i++)
{
NSLog(@"\nSAYIYI GIRINIZ");
scanf("%f",&say);
s=s+say;
if (say<ek)
ek=say;
else if(say>eb)
eb=say;
#if GELIS
NSLog(@"\nTOPLAM=%8.1f",s);
NSLog(@"\nEN KUCUK SAYI=%8.1f",ek);
NSLog(@"\nEN BUYUK SAYI=%8.1f",eb);
#endif
}
NSLog(@"\n\nSAYILARIN TOPLAMI=%8.1f",s);
NSLog(@"\nEN KUCUK SAYI=%8.1f",ek);
NSLog(@"\nEN BUYUK SAYI=%8.1f",eb);
[pool drain];
return 0;
}
PROGRAM ÇIKTISI:
SAYI MIKTARI
2
SAYIYI GIRINIZ
3
TOPLAM= 3.0
EN KUCUK SAYI= 3.0
EN BUYUK SAYI=-169999997607218212453866206899682148352.0
SAYIYI GIRINIZ
5
TOPLAM= 8.0
EN KUCUK SAYI= 3.0
EN BUYUK SAYI= 5.0
SAYILARIN TOPLAMI= 8.0
EN KUCUK SAYI= 3.0
EN BUYUK SAYI= 5.0
AÇIKLAMA:
GELIS sabiti #define komutuyla 1 olarak atandığı için, #if komutunun koşulu doğru olacak ve for döngüsü içindeki printf fonksiyonları çalışacaktır.
GELIS sabiti aşağıdaki gibi 0 yapılırsa,
#define GELIS 0
o takdirde aşağıdaki çıktı elde edilecektir:
SAYI MIKTARI
2
SAYIYI GIRINIZ
3
SAYIYI GIRINIZ
5
SAYILARIN TOPLAMI= 8.0
EN KUCUK SAYI= 3.0
EN BUYUK SAYI= 5.0