08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

Aşağıdaki #define önişlemci komutları geçerli değildir:<br />

#define + -<br />

#define 100 200<br />

Simgesel değişmezler, C dilinin değişken isimlendirme kurallarına uygun olarak<br />

isimlendirilmelidir:<br />

#define BÜYÜK 10<br />

tanımlaması geçersizdir.<br />

Önişlemci program, #include komutu ile kaynak koda eklenen dosyanın içindeki önişlemci<br />

komutlarını da çalıştırır. Bu durumda içinde simgesel değişmez tanımlamaları yapılmış bir<br />

dosya, #include komutu ile kaynak koda eklendiğinde, bu simgesel değişmezler de<br />

kaynak kod içinde tanımlanmış gibi geçerli olur.<br />

#define önişlemci komutunda dizgeler de kullanılabilir:<br />

#defineHATA_MESAJI "DOSYA AÇILAMIYOR \n"<br />

/***/<br />

printf(HATA_MESAJI);<br />

/***/<br />

Simgesel değişmez tanımında kullanılacak dizge uzunsa, kodun okunmasını<br />

kolaylaştırmak için, birden fazla satıra yerleştirilebilir. Bu durumda, son satır dışındaki<br />

satırların sonuna "\" atomu yerleştirilmelidir.<br />

Okunabilirlik açısından, tüm simgesel değişmez tanımlamaları alt alta gelecek biçimde<br />

yazılmalıdır. Seçilen simgesel değişmez isimleri, kodu okuyan kişiye bunların ne amaçla<br />

kullanıldığı hakkında fikir vermelidir.<br />

Bir simgesel değişmezin tanımlanmış olması, kaynak kod içinde değiştirilebilecek bir<br />

bilginin olmasını zorunlu hale getirmez. Tanımlanmış bir simgesel değişmezin kaynak kod<br />

içinde kullanılmaması, herhangi bir hataya yol açmaz.<br />

Simgesel Değişmezler Kodu Daha Okunabilir Kılar<br />

Simgesel değişmezler, yazılan kodun okunabilirliğini ve algılanabilirliğini artırır. Bazı<br />

değişmezlere isimlerin verilmesi, bu değişmezlerin ne amaçla kullanıldığı hakkında daha<br />

fazla bilgi verilebilir. Aşağıdaki örneğe bakalım:<br />

#define PERSONEL_SAYISI 750<br />

void foo()<br />

{<br />

/***/<br />

if (x == PERSONEL_SAYISI)<br />

/***/<br />

}<br />

Kaynak kod içinde PERSONEL_SAYISI simgesel değişmezi yerine doğrudan 750 değeri<br />

kullanılmış olsaydı, kodu okuyanın, bu değişmezin ne anlama geldiğini çıkarması çok<br />

daha zor olurdu, değil mi?<br />

Simgesel Değişmezlerle Türlere İsim Verilmesi<br />

#define önişlemci komutuyla C'nin doğal veri türlerine de isimler verilebilir:<br />

170/529

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

Saved successfully!

Ooh no, something went wrong!