فایل های header در زبان C – آموزش زبان C

c header files 4161 فایل های header در زبان C   آموزش زبان C

فایل های header در زبان C

فایل header یک فایل با پسوند .h است که شامل اعلان های توابع زبان C تعریف مروبط به ماکروها است و بین چندین فایل منبع به اشتراک گذاشته می شود. دو نوع فایل header وجود دارد: آن هایی که برنامه نویس خودش می نویسد و آن هایی که از قبل نوشته شده اند و به همراه کامپایلر ارائه می شوند.

در یک برنامه C شما با استفاده از دستور پیش پردازنده #include درخواست استفاده از یک فایل header را به کامپایلر می دهید (مانند stdio.h که در اکثر برنامه های C وجود دارد). Include کردن یک فایل header به معنای کپی محتوای آن فایل است. اما از آن جایی که این کار اشتباه است ما آن را انجام نمی دهیم. یک راه ساده در برنامه های C/C++ این است که تمام ثوابت، ماکروها، متغیرهای جهانی و الگوی توابع را در فایل های header نگه داریم تا هر کجا که لازم بود، از آن ها استفاده کنیم.

نحوه نوشتن include

به منظور استفاده فایل های header سیستم باید دستور #include را به صورت زیر بنویسید:

#include <file>

هنگامی که نام فایل header بین <> قرار می گیرد، کامپایلر در داخل پوشه مربوط به فایل های header سیستم دنبال آن می گردد. به منظور استفاده از فایل های header تعریف شده توسط برنامه نویس هم می توانید به صورت زیر عمل کنید:

#include "file"

هنگامی که نام فایل header بین “” قرار می گیرد، کامپایلر در داخل پوشه ای که برنامه شما در آن قرار دارد، دنبال آن می گردد.

عملیات include کردن

کامپایلر قبل از این که عمل کامپایل برنامه شما را انجام دهد، فایل های header تعریف شده را اسکن می کند و موارد لازم را به برنامه شما اضافه می کند و سپس برنامه نهایی را کامپایل می کند. برای نمونه به مثال زیر توجه کنید.

اگر تابع زیر را در فایل header.h بنویسیم:

char *test (void);

و آن را در برنامه اصلی و به صورت زیر فراخوانی کنیم:

int x;
#include "header.h"
int main (void) {
   puts (test ());
}

کامپایلر کد فوق را ابتدا به شکل زیر در می آورد و سپس آن را کامپایل می کند:

int x;
char *test (void);
int main (void) {
   puts (test ());
}

فقط یک بار include کردن فایل header

اگر یک فایل header دو بار به برنامه اضافه شود، کامپایلر هم آن را دو بار پردازش خواهد کرد. بنابراین باعث بوجود آمدن خطا می شود. برای جلوگیری از این موضوع می توانید برای include کردن فایل ها شرط تعیین کنید. مانند نمونه زیر:

#ifndef HEADER_FILE
#define HEADER_FILE
the entire header file file
#endif

عملکر ساختار بالا به این صورت است که ابتدا با استفاده از دستور #ifndef بررسی می کند که آیا فایل header تعریف شده است یا خیر. اگر تعریف نشده باشد، وارد بلوک if می شود و با دستور #define آن را تعریف می کند. دستور #endif هم نشان دهنده پایان بلوک if است.

تنظیم include ها

گاهی اوقات موقعیتی پیش می آید که باید یکی از چندین فایل header را انتخاب کنید. برای نمونه فرض کنید می خواهید برنامه بنویسید که هم بر روی ویندوز هم روی لینوکس و هم روی مک کار کند. شما می توانید با استفاده از دستورات شرطی زیر مشخص کنید که اگر سیستم عامل ویندوز بود فایل یک را اضافه کن، اگر لینوکس بود فایل دو و اگر مک بود فایل سه را اضافه کن.

#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

نوشته فایل های header در زبان C – آموزش زبان C اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *