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
