Basit programlar tek bir dosyaya yerleştirilebilir, ancak programınız büyüdüğünde, hepsini tek bir dosyada tutmak imkansı olmakta.
Bir programın parçalarını ayrı bir dosyaya taşıyabilir, ardından bir başlık dosyası oluşturabilirsiniz .
Bir başlık dosyası normal bir C dosyası gibi görünür, ancak bunun .hyerine ile biter .cve işlevlerinizin ve bir programın diğer bölümlerinin uygulamaları yerine, bildirimleri tutar .
printf()İşlevi veya diğer G / Ç işlevini ilk kullandığınızda zaten başlık dosyalarını kullandınız ve şunu yazmanız gerekiyordu:
#include <stdio.h>kullanmak için.
#includebir önişlemci yönergesidir.
Önişlemci gidip stdio.hdosyayı standart kitaplıkta arar , çünkü etrafında köşeli parantezler kullandınız. Kendi başlık dosyalarınızı eklemek için, aşağıdaki gibi tırnak işaretleri kullanacaksınız:
#include "myfile.h"Yukarıdakiler myfile.hgeçerli klasörde bakacaktır .
Kitaplıklar için bir klasör yapısı da kullanabilirsiniz:
#include "myfolder/myfile.h"Bir örnek verelim. Bu program, belirli bir yıldan beri geçen yılları hesaplar:
#include <stdio.h> int calculateAge(int year) { const int CURRENT_YEAR = 2020; return CURRENT_YEAR - year; } int main(void) { printf("%u", calculateAge(1983)); }calculateAgeİşlevi ayrı bir dosyaya taşımak istediğimi varsayalım .
Bir calculate_age.cdosya oluşturuyorum :
int calculateAge(int year) { const int CURRENT_YEAR = 2020; return CURRENT_YEAR - year; }Ve gövde hariç, dosyadaki işlevle aynı olan işlev prototipinicalculate_age.h koyduğum bir dosya :.c
int calculateAge(int year);Şimdi ana .cdosyada calculateAge()fonksiyon tanımına gidip kaldırabiliriz ve içe aktarabiliriz calculate_age.h, bu da calculateAge()fonksiyonu kullanılabilir hale getirir:
#include <stdio.h> #include "calculate_age.h" int main(void) { printf("%u", calculateAge(1983)); }Birden fazla dosyadan oluşan bir programı derlemek için hepsini komut satırında şu şekilde listelemeniz gerektiğini unutmayın:
gcc -o main main.c calculate_age.c