آموزش C

مباحث پایه زبان C

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

c header files 4161 تصویر

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

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

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

نحوه نوشتن include

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

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

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

عملیات include کردن

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

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

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

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

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

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

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

تنظیم include ها

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

شما همچنین می توانید برای نام فایل های هدف ماکرو تعریف کنید مانند نمونه زیر:

ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است