8.7 Makro Fonksiyon Tanımlaması
8.7 Makro Fonksiyon Tanımlaması
Başlık dosyalarında, bol miktarda makro fonksiyon uygulamalarına rastlanır. Makro tanımlaması #define önişlemci komutu kullanılarak yapılır. Örneğin aşağıdaki makro fonksiyonlar geçerlidir.
1 2 3 |
#define kare(x) (x)*(x) #define delta(a,b,c) ((b)*(b)-4*(a)(c)) #define yaz() puts("Devam etmek için bir tuşa basın...") |
Bu şekilde tanımlanan fonksiyonların kullanımı diğerleri gibidir. Yalnızca programın başında tanımlanır. Ancak, bu tanımlamalarla fonksiyon bellekte bir yer işgal etmez. Makro fonksiyon tanımlamaları Bölüm 20’de tekrar ele alınacaktır.
Basit bir makro fonksiyon uygulaması Program 8.6’da gösterilmiştir. buyuk(a,b) makrosu a>b ise a değerini aksi halde b değerini gönderir.
Program 8.6: Makro fonksiyon uygulaması
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
/* 08prg06.c: makro fonksiyon uygulaması */ #include <stdio.h> #define buyuk(a,b) ( (a>b) ? a:b) int main() { int x,y,eb; printf("iki sayı girin: "); scanf("%d,%d",&x,&y); eb = buyuk(x,y); printf("buyuk olan %d\n",eb); return 0; } |
ÇIKTI
1 2 |
iki sayı girin: 8,6 buyuk olan 8 |