Standart C Programlama Dili


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 fonksiyonun 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.