C yazılımları tarafından kullanılan kütüphaneler gerçekte iki ana parçadan oluşur: veri türlerinin ve makroların tanımlandığı, değişkenlerin ve işlevlerin bildirildiği başlık dosyaları ile değişken ve işlev tanımlarının bulunduğu arşiv, yani asıl kitaplık.
(C ile ilgili bilgileri hatırlayalım: Bir
bildirim bir işlev ya da bir değişkenin varlığı ve türü hakkında bilgi verir. İşlev bildirimi ayrıca argümanlarının türleri hakkında da bilgi verir. Bildirim işlemi yoluyla, derleyiciler nesnelerin hangi özelliklere sahip olduklarını anlarlar.
Tanımlama ise derleyiciye değişken için bellekte yer ayırmasını ya da işlevin ne yaptığını belirtmek içindir. Yani tanımlama ile derleyici bellekte bir yer açarken, bildirim de bunu yapmaz.) GNU C kütüphanesindeki oluşumları kullanırken, yazılımınızın kaynak koduna ilgili başlık dosyalarını dahil etmeniz gerekir. Böylece derleyici bu oluşumların bildirimlerini edinir ve onları doğru olarak işler. Yazılımınız önişlemci tarafından işlendikten sonra ilintileyici bunların sağladığı bilgilerle arşiv dosyasındaki tanımlamalara ulaşır.
Başlık dosyaları bir yazılımın kaynak koduna #include önişlemci deyimi ile dahil edilir. C dili bu deyimi iki şekilde kabul eder; Birinci kullanım,
şeklindedir ve bununla kendi yazdığınız, yazılımınızın farklı parçaları arasındaki arayüzleri açıklayan bildirim ve tanımları içeren başlık isimli bir başlık dosyasını kaynak kodunuza dahil edersiniz. İkinci kullanımı ise,
şeklindedir ve bununla bir standart kütüphanenin bildirim ve tanımlarının bulunduğu dosya.h başlık dosyasını kaynak kodunuza dahil edersiniz. Bu dosya normalde sistem yöneticiniz tarafından standart bir yere konmuştur. C kütüphanesinin başlık dosyalarını kaynak kodunuza dahil etmek istediğinizde bu ikincisini kullanmalısınız.
Genellikle,
#include önişlemci deyimleri C kaynak kodunun ilk satırlarında bulunur. Kaynak dosyalarınızın başına bu kodun ne yaptığına ilişkin bazı açıklamalar koyuyorsanız,
özellik sınama makrolarının tanımlarını hemen altındaki satırlara koyun ve ardından da
#include önişlemci deyimlerini yerleştirin.
GNU C kütüphanesindeki başlık dosyaları birbiriyle ilgili oluşumların tür ve makro tanımları ile değişken ve işlev bildirimleri şeklinde gruplanarak oluşturulmuştur. Bu nedenle kullanmak istediğiniz özellikler ile örtüşen çok sayıda başlık dosyasını kaynak kodunuza dahil etmeniz gerekebilir.
Bazı kütüphane başlık dosyaları başka bir kütüphanenin başlık dosyalarını da içerebilir. Bu bir yazılım geliştirme tarzı ile ilgilidir ve siz buna pek bel bağlamayın; en iyisi kullandığınız kütüphane oluşumları için gerekli başlık dosyalarını kendiniz yine de kodunuza dahil edin. Kaynak koduna aynı başlık dosyasının defalarca dahil edilmiş olmasının bir önemi yoktur. İlk dahil edilenden sonrakiler etkisizdir.
| Uyumluluk bilgisi |
---|
ISO C gerçeklemelerinin hepsi başlık dosyalarının sıralaması ve defalarca içerilmesi durumlarında bu şekilde davranır. Ancak, çok eski C gerçeklemelerinde bu geleneksel bir durum haline gelmemişti. |
Belirtmek gerekir ki, bir işlevin bildirildiği bir başlık dosyasını kodunuza dahil etmek zorunda değilsiniz. Bu kılavuzdaki belirtimlere uyarak, o işlevi kendiniz de bildirebilirsiniz. Ancak bu önerilmez, çünkü başlık dosyası o işlevi bir makro tanımı olarak içeriyor olabilir.