08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

Yukarıda tanımlanan getrandom isimli makro min ve max değerleri arasında bir rastgele<br />

tamsayının üretilmesine neden olur.<br />

isleap makrosu önişlemci tarafından açıldığında makro argümanı olan ifadenin değerinin<br />

artık yıl olması durumunda 1 değeri aksi halde 0 değeri üretilir. Bu durumda makro bir<br />

sınama işlevi gibi kullanılır.<br />

swap_int makrosu argümanı olan tamsayı değişkenlerin değerlerini takas eden bir ifadeye<br />

açılır.<br />

Bir makronun parametreye sahip olması gerekmez. Aşağıda tanımlanan randomize<br />

makrosunu inceleyin:<br />

#define randomize()<br />

srand((unsigned int)time(NULL))<br />

Önişlemci Dizge Yapma İşleci<br />

Bir makro tanımının açılım listesinde yer alan # atomu önişlemci programın bir işlecidir.<br />

# işleci önek konumunda tek terimli bir işleçtir. Bu işlemcinin terimi makro<br />

parametrelerinden biri olmalıdır. Parametresiz makrolarda bu işleç kullanılamaz.<br />

Önişlemci makroyu açtığında makro parametresine karşılık gelen makro argümanını çift<br />

tırnak içine alır:<br />

Aşağıdaki kodu inceleyin:<br />

#include <br />

#define printint(x) printf(#x " = %d\n", x);<br />

int main()<br />

{<br />

int a = 10;<br />

int b = 20;<br />

printint(a);<br />

printint(a + b);<br />

}<br />

return 0;<br />

Yukarıdaki örnekte, printint makrosu açılım listesinde, makro parametresi olan x, dizge<br />

yapma işlecinin terimi yapılıyor. Önişlemci program, main işlevinin kodunu aşağıdaki<br />

biçime dönüştürür.<br />

int main()<br />

{<br />

int a = 10;<br />

int b = 20;<br />

printf("a" " = %d\n", a);<br />

printint("a + b" " = %d\n", a + b);<br />

}<br />

return 0;<br />

Boşluk karakterleriyle birbirinden ayrılan dizgelerin, derleyici tarafından otomatik olarak<br />

birleştirilerek tek dizge haline getirildiğini anımsayın. Program derlenerek çalıştırıldığında<br />

ekran çıktısı aşağıdaki gibi olur:<br />

a = 10<br />

a + b = 30<br />

489

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!