23 Ocak 2015 Cuma

C Makroları

Programın içinde sıkça yinelenmesi gerekebilecek küçük kod parçaları makrolar yardımıyla gerçeklenebilir. Örnekte kare alma işlemini yapmak üzere bir makro yazılmıştır. Makrolar da değişmez tanımlarına benzer şekilde #define sözcüğüyle yapılırlar. İşleyişleri de yine değişmez tanımlarına benzer şekilde olur, yani makronun adının geçtiği yere açılımı konur. Örnekteki
area = PI * sqr(radius);
komutu görülünce makro tanımında x yerine radius sözcüğü konarak kod
area = PI * ((radius) * (radius));
şekline getirilir (programcı kendisi bu şekilde yazmış gibi).
Bu işlem bir sözcük ya da sözcük grubunun yerine başka bir sözcük ya da sözcük grubunun yerleştirilmesi şeklinde yürüdüğünden kullanımına dikkat etmek gerekir. Örnekteki makro
#define sqr(x) x * x
şeklinde tanımlansa ve programda
sqr(radius + 1)
şeklinde kullanılsaydı yerine geçecek (yanlış) kod şu şekilde olurdu:
radius + 1 * radius + 1

1 yorum:

  1. hocam merhaba. makro yazımında 3 sayıdan en küçüğünü bulan makronun doğru yazımı nasıldır?

    #define min(a,b,c) ((a)<(b)?((a)<(c)?(a):(c)):((b)<(c)?(b):(c)))

    bunu yazdığımda çalışıyor fakat daha düzgün bir yazımı var mıdır?

    YanıtlaSil