iOS 101Başlangıç seviyesi derslerde iOS uygulama geliştirme ortamını detaylı olarak inceliyoruz.

Tüm Eğitimleri Aldın mı? Kendini sınamanın tam zamanı

Haydi Sınava Gir

Makro Tanımlamada # ve ## Operatörleri

Kategori : Mobil | Lisans : Creative Commons (by-nc-sa) | En son 11.05.2016 tarihinde güncellendi
Eğitmen : Geleceği Yazanlar Ekibi
Etiketler : obj-c # ve ## obj-c makro tanımlama

# Operatörü

Makro tanımlarken kullanılan biçimsel parametrenin önüne # sembolü yerleştirilirse, makro çağrıldığında bu biçimsel parametreye karşılık gelen gerçek parametre bir stringe dönüştürülür.

ÖRNEK:

#define  BASLIK(FORMAT,DEGER) \
NSLog(@#FORMAT,DEGER)

#import <Foundation/Foundation.h>

int main(int argc, char* argv[])
{
    NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];

    int i=10;
    BASLIK(\ni=%i   ,i);
    [pool drain];
    return 0;
}

 

 

PROGRAMIN ÇIKTISI:

i=10

 

AÇIKLAMA:

Makro tanımında, #FORMAT  tanımından ötürü,  \ni=%d  gerçek parametresi FORMAT adlı biçimsel parametre içine "\ni=%d" şeklinde bir string olarak aktarılmış ve printf fonksiyonu

NSLog(@"\ni=%d",i);

şeklinde çalıştırılmıştır.



## Operatörü

Makro tanımında biçimsel parametre ifadesinde ## sembollerinin bulunması, bu sembollerin her iki tarafında bulunan alanların birleştirileceği anlamındadır.

ÖRNEK:

#define  BASLIK(FORMAT,DEGER) \
NSLog(@#FORMAT,KOK##DEGER)
 
#import <Foundation/Foundation.h>
 
int main(int argc, char* argv[])
{
    NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
 
    int KOK1=10;
    int KOK2=8;
    BASLIK(\nKOK1=%7d..  ,1);
    BASLIK(\nKOK2=%7d..  ,2);
    [pool drain];
    return 0;
}

 

 

PROGRAMIN ÇIKTISI:

KOK1=     10

KOK2=      8

 

AÇIKLAMA:

Makro tanımındaki, KOK##DEGER biçimsel parametre tanımından dolayı, BASLIK(\nKOK1=%7d..  ,1); makro çağrısındaki 1 gerçek parametresi, KOK ifadesi ile birleştirilerek KOK1 değişkeni elde edilir ve printf fonksiyonu ile bu değişkenin değeri yazdırılır.  BASLIK (\nKOK2=%7d..  ,2); çağrısında ise, 2 değeri KOK ifadesi ile birleştirilerek printf ile KOK2 değeri yazdırılır.