Header Files

Header Files konusuna değinilen kısım.

Header Files Nedir?

Header Files, kodunuzu modüler hale getirmenizi sağlayan ve kodunuzu organize etmenize yardımcı olan önemli bir kavramdır. Header Files, C dilinde sıkça kullanılan işlevleri, veri yapılarını, sabitleri ve prototiplerini (deklarasyonlarını) içeren ayrı dosyalardır ve bu dosyalar programınızın kaynak kodundan ayrı olarak saklanır.

Header Files, .h uzantısına sahiptir ve #include ön işlemci direktifi kullanılarak ana programınıza dahil edilirler. Başlık dosyaları, genellikle işlevleri, veri yapılarını veya diğer kod bloklarını içermez, sadece bu kodların prototiplerini (deklarasyonlarını) içerir.

hesapla.h
#ifndef HESAPLA_H
#define HESAPLA_H

int topla(int, int);
int carp(int, int);

#endif
funcs.c
#include "hesapla.h"

int topla(int a, int b)
{
	return a + b;
}

int carp(int a, int b)
{
	return a * b;
}
main.c
#include "hesapla.h"

int main() {
    int sonuc = topla(5, 3);
    return 0;
}

Farklı kaynak dosyalarında tanımlanmış olan fonksiyonları tek bir çatı altında toplayarak şayet diğer kaynak dosyalarında da kullanılması için, modüler bir yapı sunarak kullanılmasını sağlar.

Preprocessor Muhafaza Direktifleri (ifndef, define, endif):

Başlık dosyalarını derlemeden önce işlenmesi için #include, tekrar tekrar dahil edilmesini önlemek için, #ifndef (if not defined), #define ve #endif ön işlemci muhafaza direktifleri kullanılır. Bu direktifler, başlık dosyasının yalnızca bir kez dahil edilmesini sağlar;

  • #include: Başlık dosyasının derlemeden önce işlenmesi gerektiğini derleyiciye yönlendirir ve gerekli tüm veri türlerini ve işlev tanımlarını içerir.

  • #ifndef: Belirli bir sembol daha önce tanımlanmadıysa (yani, başlık dosyası daha önce dahil edilmediyse), kodunuzu içine alır.

  • #define: Sembolü tanımlar ve belirtir ki başlık dosyası içe alındığında bu sembol tanımlıdır.

  • #endif: Başlık dosyasının sonunu işaretler.

Bu şekilde, başlık dosyası daha önce dahil edilmişse, tekrar dahil edilmez.

Header Forms

Başlık dosyalarını <header.h> biçiminde dahil etmek ile "header.h" biçiminde dahil etmek arasında fark vardır. Bu iki biçim, başlık dosyasının nerede bulunacağını ve nasıl dahil edileceğini belirtir.

  1. #include <header.h> (Kütüphane Başlık Dosyaları): Bu biçim, derleyicinin standard kütüphane veya diğer kütüphanelerde bulunan başlık dosyalarını aramasını sağlar. Yani, header.h başlık dosyasını proje klasörünüzde değil, derleyici tarafından sağlanan bir kütüphane veya sistem kütüphaneleri içinde arar.

#include <stdio.h> // Standard giriş/çıkış başlık dosyasını dahil eder.
  1. #include "header.h" (Proje Başlık Dosyaları): Bu biçim, başlık dosyasının proje veya kaynak kodunuzun bulunduğu klasörde aranmasını sağlar. Yani, header.h başlık dosyası projenizin içinde bulunmalıdır veya projenizin kaynak kodunun çalıştığı dizinde bulunmalıdır.

#include "hesapla.h" // Kendi başlık dosyanızı dahil eder.

Genellikle, kendi projeniz için özel olarak oluşturduğunuz başlık dosyalarını "header.h" biçiminde dahil edersiniz, çünkü bu dosyalar proje klasörünüzde bulunur. Öte yandan, derleyicinin veya sistem kütüphanelerinin başlık dosyalarını <header.h> biçiminde dahil edersiniz çünkü bu dosyalar genellikle derleyici veya işletim sistemi tarafından sağlanır.

Last updated