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 .h
yerine ile biter .c
ve 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.
#include
bir önişlemci yönergesidir.
Önişlemci gidip stdio.h
dosyayı 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.h
geç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.c
dosya 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 .c
dosyada 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