BÖLÜM 9: STANDART BAŞLIK DOSYALARI
C Standardı, değişmez, makro ve tip tanımlayan;
değişken bildiren ve tüm standart kütüphane fonksiyonlarının prototiplerini
içeren 29 tane başlık dosyası tanımlar. Bir Standart C fonksiyonunu çağırmadan
önce, ilgili başlık dosyası #include
emri ile programa dahil
edilmelidir. Bir başlık dosyasının
ille de bir kaynak
dosya şeklinde sağlanması gerekmez; <
ve >
arasına yazılan isimlerin de gerçek bir dosya ismine karşılık gelmesi
gerekmez.
Bazı gerçekleştirmelerde, bazı fonksiyonlar
önişlemci makroları şeklinde tanımlanmışlardır. Kullanıcı açısından bir
fonksiyonun gerçekten fonksiyon şeklinde mi yoksa makro şeklinde mi
tanımlanmış olduğu, bir istisna dışında, farketmez: Makro argümanları,
parametre makro içinde kaç defa kullanılırsa, o kadar kere hesaplanırlar.
Eğer argümanlarda yan etkili işleç veya fonksiyonlar kullanılırsa,
bu sorun yaratabilir. Örneğin, bazı uygulamalarda tolower
ve toupper
makro şeklinde ctype.h
içinde
tanımlanırken, stdlib.h
içinde ilgili fonksiyonların
bildirimi yapılmaktadır. Eğer yan etkisi olmayan işleçler içeren
argümanlar verecekseniz, daha hızlı olacağı için, makroları kullanmak
daha akılcıdır; ancak argümanlar olası yan etkileri olan karmaşık
ifadeler ise, argümanların bir defa hesaplanacakları ilgili
fonksiyonları çağırın. C Standardı argümanlarını birden fazla kez
hesaplayan standart makroların tanımlanmasını yasaklamıştır.
Ancak, ortamınızda bir fonksiyon
un hem makro hem de fonksiyon
tanımı yapılmışsa, fonksiyon tanımını kullanmak için
fonksiyon ismini parantezler içine alabilirsiniz. Bu şekilde, o ismin
makro şeklinde değerlendirilmesi mümkün olmayacaktır.
Standart başlık dosyalarının hangi sıra ile #include
edildikleri veya birden fazla kez aynı başlık dosyasının #include
edilmesi önemsizdir. Standart başlık dosyalarında bildirimi yapılan
fonksiyonlar dışsaldır. Bu dosyalarda tanımlanan isimlerin programcı
tarafından program içinde tanımlanan isimlerle çakışmaması gerekir.