ملفات الترويسة
جزء من قسم Object Oriented Programming في رحلة C على Coddy — الدرس 1 من 61.
مع نمو برامج C وازدياد حجمها، يصبح الاحتفاظ بجميع الأكواد في ملف واحد أمراً غير قابل للإدارة. توفر ملفات الرأس (Header files) طريقة لتنظيم الكود الخاص بك عن طريق فصل ماذا تفعله الدالة عن كيفية قيامها بذلك.
يحتوي ملف الترويسة (بالامتداد .h) على تصريحات الدوال (والتي تسمى أيضاً بالنماذج الأولية). تخبر هذه التصريحات المترجم (compiler) بوجود دالة ما وما هي المعاملات التي تستقبلها، دون تقديم التنفيذ الفعلي لها.
// math_utils.h
int add(int a, int b);
لاستخدام التصريحات من ملف ترويسة (header file)، تقوم بتضمينه باستخدام التوجيه #include. بالنسبة لملفات الترويسة الخاصة بك، استخدم علامات الاقتباس المزدوجة بدلاً من الأقواس الزاوية:
// main.c
#include "math_utils.h"
int add(int a, int b) {
return a + b;
}
int main() {
int result = add(5, 3);
return 0;
}
الفرق الرئيسي: #include <stdio.h> يبحث في مجلدات النظام، بينما #include "math_utils.h" يبحث أولاً في مجلد مشروعك. يسمح هذا الفصل لملفات متعددة بمشاركة نفس تصريحات الدوال، مما يجعل قاعدة الكود الخاصة بك أسهل في التصفح والصيانة.
ورقة مرجعية
تحتوي ملفات الترويسة (التي تحمل الامتداد .h) على تصريحات الدوال التي تخبر المترجم بوجود دالة دون تقديم تنفيذها:
// math_utils.h
int add(int a, int b);
قم بتضمين ملفات الترويسة الخاصة بك باستخدام علامات الاقتباس المزدوجة:
// main.c
#include "math_utils.h"
int add(int a, int b) {
return a + b;
}
يبحث #include <stdio.h> في مجلدات النظام، بينما يبحث #include "math_utils.h" في مجلد مشروعك أولاً.
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Object Oriented Programming
1أساسيات البرمجة التركيبية
ملفات الترويسةحواجز التضمينملفات المصدرالدوال الساكنةمراجعة: آلة حاسبة تركيبية4التغليف (Encapsulation)
مفهوم الـ Opaque Pointersتعريف الـ Opaque Structsالـ Getters والـ Settersالتحقق من البيانات في الـ Settersملخص: الصندوق السري2الكائنات والأساليب
الـ Structs ككائناتمؤشر 'Self'صحة استخدام Constالمؤشر مقابل القيمةالأساليب المساعدةملخص: Point Manager5مشروع: حساب بنكي بسيط
إعداد المشروعتنفيذ الحساب3دورة حياة الكائن
نمط المنشئ (Constructor Pattern)نمط الهادم (Destructor Pattern)تهيئة الـ Stackالنسخ العميق (Deep Copy)مراجعة: String Wrapper6الوراثة عبر التركيب
تضمين الـ Structقاعدة العضو الأولالوصول إلى أعضاء الأبعملية الـ Upcastingمراجعة: هرمية الأشكال9مشروع: رسّام الأشكال
نظرة عامة على المشروعتنفيذ الدائرة