Gerçek Parametrelerde Bir Dizi İfadenin Kullanılması
Lisans:
Creative Commons
11.12.2020
tarihinde güncellendi
Bakabileceğiniz Etiketler:
Eğitmen:
Geleceği Yazanlar Ekibi
Makro çağrımında makroya gönderilen parametre, birbirini izleyen hesaplama ifadelerinden oluşabilir. Bu durumda ek olarak bir parantez kullanmalı ve birbirini izleyen ifadeleri virgüllerle ayırmalıyız.
ÖRNEK:
#define KARE(x) (x) *(x)
#import <Foundation/Foundation.h>
int main(int argc, char* argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
int i,m;
i=5;
NSLog(@"\nKARESI=%i SAYI=%i ",KARE((m=i+1,m+3)),m+3);
[pool drain];
return 0;
}
PROGRAMIN ÇIKTISI:
KARESI=81 SAYI=9
AÇIKLAMA:
Bu örnekte KARE adlı makro, 9 değeri gönderilerek çalıştırıldı. 9 değeri ise, m=i+1 ve m+3 hesaplama ifadeleri ile elde edildi.
ÖRNEK:
for döngüsünün parametrik bir makro ile ifade edilmesine bir örnek ile bakalım.
#define CEVRIM(PAR,BAS,SON,ARTIM) \
for (PAR=BAS;PAR<=SON;PAR=PAR+ARTIM)
#import <Foundation/Foundation.h>
int main(int argc, char* argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
int i,s=0;
CEVRIM(i,1,15,2)
s=s+i;
NSLog(@"\n1+3+5+...+15=%i ",s);
[pool drain];
return 0;
}
PROGRAMIN ÇIKTISI:
1+3+5+...+15=64
AÇIKLAMA:
Programda 1’den 15’e kadar tek sayıların toplamı, CEVRIM adlı makro yardımı ile hesaplatıldı.