ملفات رأس C

كيفية استخدام C Header Files لفصل برنامج إلى عدة ملفات

يمكن وضع البرامج البسيطة في ملف واحد ، ولكن عندما يكبر البرنامج الخاص بك ، من المستحيل الاحتفاظ بها كلها في ملف واحد فقط.

يمكنك نقل أجزاء من البرنامج إلى ملف منفصل ، ثم إنشاء ملفالملف الاساسي.

يبدو ملف الرأس كملف C عادي ، إلا أنه ينتهي بـ.hبدلا من.c، وبدلاً من تنفيذ وظائفك والأجزاء الأخرى من البرنامج ، فإنه يحمل الامتدادالإعلانات.

لقد استخدمت بالفعل ملفات الرأس عند استخدامك لملفprintf()أو وظيفة I / O أخرى ، وكان عليك كتابة:

#include <stdio.h>

لتستخدمها.

#includeهوالمعالجالتوجيه.

يذهب المعالج ويبحث عن ملفstdio.hملف في المكتبة القياسية ، لأنك استخدمت أقواس حوله. لتضمين ملفات الرأس الخاصة بك ، ستستخدم علامات الاقتباس ، مثل هذا:

#include "myfile.h"

ما ورد أعلاه سوف يبحثmyfile.hفي المجلد الحالي.

يمكنك أيضًا استخدام بنية مجلد للمكتبات:

#include "myfolder/myfile.h"

لنجعل مثالا. يحسب هذا البرنامج السنوات منذ سنة معينة:

#include <stdio.h>

int calculateAge(int year) {
  const int CURRENT_YEAR = 2020;
  return CURRENT_YEAR - year;
}

int main(void) { printf("%u", calculateAge(1983)); }

افترض أنني أريد نقل ملفcalculateAgeوظيفة إلى ملف منفصل.

أقوم بإنشاء ملفcalculate_age.cملف:

int calculateAge(int year) {
  const int CURRENT_YEAR = 2020;
  return CURRENT_YEAR - year;
}

وأcalculate_age.hالملف حيث أضع ملفنموذج الوظيفة، وهي نفس الوظيفة في ملف.cملف ، باستثناء الجسم:

int calculateAge(int year);

الآن في الصدارة.cملف يمكننا الذهاب وإزالةcalculateAge()تعريف الوظيفة ، ويمكننا الاستيرادcalculate_age.h، مما سيجعل ملفcalculateAge()الوظيفة المتاحة:

#include <stdio.h>
#include "calculate_age.h"

int main(void) {
  printf("%u", calculateAge(1983));
}

لا تنسَ أنه لتجميع برنامج مؤلف من عدة ملفات ، فأنت بحاجة إلى سردها جميعًا في سطر الأوامر ، مثل هذا:

gcc -o main main.c calculate_age.c

ومع الإعدادات الأكثر تعقيدًا ، من الضروري وجود ملف Makefile لإخبار المترجم بكيفية تجميع البرنامج.

تحميل مجانيكتيب C


المزيد من دروس clang: