Latest web development tutorials

ملفات C رأس

ملف الرأسهو. ح ملف التمديد،بما في ذلك الإعلانات C وظيفة وتعريفات الماكرو، استشهد تتقاسمها ملفات متعددة المصدر. هناك نوعان من رؤوس: مبرمجين لكتابة رأس الملفات ومترجم يأتي مع الملفات رأس.

في البرنامج الذي تريد استخدام رأس الملفات، استخدم C المعالج التوجيه# تتضمن الإشارة إلى ذلك.لقد رأينا بالفعل ملف الرأسstdio.h، وهو ملف الرأس الذي يأتي مع المترجم.

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

ومن الممارسات بسيطة في C أو C ++ برنامج، بأن كل الثوابت، وحدات الماكرو، والمتغيرات العالمية والنماذج وظيفة نظام مكتوب في ملف الرأس عند الحاجة في أي وقت الرجوع إلى هذه الرؤوس.

رأس الملفات بنية مرجعية

باستخدام توجيهات تجهيزها#INCLUDE يمكن الرجوع المستخدم ورأس نظام الملفات.أنه يحتوي على أشكال التاليين:

#include <file>

يستخدم هذا النموذج لمرجع الملفات رأس النظام. فإنه يبحث عن ملف ملف اسمه في القائمة الموحدة للدليل النظام. عند ترجمة شفرة المصدر، يمكنك -i الخيارات قبل الدليل قبل القائمة.

#include "file"

يستخدم هذا النموذج لمرجع الملفات رأس المستخدم. فإنه يبحث عن ملف يسمى ملف في الدليل الذي يحتوي على الملف الحالي. عند ترجمة شفرة المصدر، يمكنك -i الخيارات قبل الدليل قبل القائمة.

المرجعي الإجراءات رأس ملفات

التوجيهتتضمن # يرشد المعالج C تصفح الملف المحدد كإدخال.إخراج المعالج يحتوي على الإخراج الذي تم إنشاؤه الملفات إخراج النص المشار إليه ولدت والتعليم الانتاج# تشمل.على سبيل المثال، إذا كان لديك header.h ملف الرأس، على النحو التالي:

char *test (void);

وملف رأس باستخدامprogram.cالبرنامج الرئيسيعلىالنحو التالي:

int x;
#include "header.h"

int main (void)
{
   puts (test ());
}

سوف المترجم رؤية تيار رمزية التالية:

int x;
char *test (void);

int main (void)
{
   puts (test ());
}

إلا إشارات ملف رأس واحد

إذا المشار إليها ملف رأس مرتين، فإن المترجم معالجة محتويات الملفات رأس اثنين، والتي سوف تولد خطأ. لمنع هذا، فإن الممارسة القياسية لوضع محتويات الملف على تصريحات الترجمة الشرطية، على النحو التالي:

#ifndef HEADER_FILE
#define HEADER_FILE

the entire header file file

#endif

هذا الهيكل ويشار عادة المجمع#ifndef.عند الإشارة إلى ملف الرأس مرة أخرى، والشرط هو كاذبة، لأن HEADER_FILE محددة. في هذه الحالة، فإن المعالج تخطي محتويات الملف، فإن المترجم تجاهله.

اقتبس مشروط

أحيانا تحتاج إلى تحديد إشارة إلى البرنامج من العديد من الملفات رأس المختلفة. على سبيل المثال، تحتاج إلى تحديد معلمات التكوين على أنظمة تشغيل مختلفة. يمكنك استخدام سلسلة من الشروط لتحقيق ذلك، على النحو التالي:

#if SYSTEM_1
   # include "system_1.h"
#elif SYSTEM_2
   # include "system_2.h"
#elif SYSTEM_3
   ...
#endif

ومع ذلك، إذا كان الملف رأس مزيدا من الوقت للقيام بذلك غير مناسب جدا، استخدام وحدات الماكرو اسم المعالج لتحديد رؤوس. وهذا ما يسمىإشارة المشروطة.لم يتم استخدامه كاسم ملف الرأس# تشمل المعلمة مباشرة، تحتاج فقط إلى استخدام ماكرو لاستبدال اسم:

 #define SYSTEM_H "system_1.h"
 ...
 #include SYSTEM_H

SYSTEM_H توسع، والمعالج يبدو system_1.h، كما هو مكتوب في الأصل كماتتضمن #.ويمكن تعريف SYSTEM_H ماكيفيلي بواسطة الخيار -D بالنسبة لك.