دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۵
  • اسفند

جلسه ۲۳ : فایل های header در C

  • دسته‌بندی‌ها :
جلسه ۲۳ : فایل های header در C
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      با سلام خدمت تمامی دوستان عزیز سایت پی وی لرن .و کاربرانی که دوره کامل آموزش زبان C را دنبال می کنند. و کاربرانی که با سری آموزش های زبان C همراهمون هستند. در این جلسه قصدداریم فایل های header در زبان C و عملیات include کردن در C رو مورد بحث قرار می دهیم.در ابتدا درمورد فایل های header در زبان C صحبت می کنیم.

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

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

      در یک برنامه C شما با استفاده از پیش پردازنده #include درخواست استفاده از یک فایل header را به کامپایلر می دهید.

      مانند stdio.h که در اکثر برنامه های C وجود دارد. Include کردن یک فایل header به معنای کپی محتوای آن فایل است.

      اما از آن جایی که این کار اشتباهی است و ارور میدهد ما آن را انجام نمی دهیم.

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

      یک راه ساده در برنامه های C/C++ این است که تمام ثابت ها، ماکروها، متغیرهای عمومی و الگوی توابع را در فایل های header نگه داریم تا هر کجا که لازم بود، از آن ها استفاده کنیم.

      نحوه نوشتن include

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

      مثال : 

      این فرم برای header فایل های  سیستم استفاده می شود.

      کامپایلر یک فایل با نام ‘file’ را در فهرست استاندارد مربوط به پوشه سیستم جستجو می کند.

      در هنگام کامپایل کد منبع، شما می توانید فهرست های این لیست را با گزینه I- اضافه کنید.

      مثال : 

      این فرم برای header فایل های برنامه استفاده می شود.

      کامپایلر یک فایل با نام ‘file’ را در پوشه حاوی فایل فعلی یا پوشه ای که برنامه شما در آن قرار دارد جستجو می کند.

      در هنگام کامپایل کد منبع شما می توانید فهرست های این لیست را با گزینه I- اضافه کنید.

      عملیات include کردن در C

      عملیات include کردن در C : کامپایلر قبل از این که عمل کامپایل برنامه شما را انجام دهد، فایل های header تعریف شده را اسکن می کند.

      همچنین موارد لازم را به برنامه شما اضافه می کند و سپس برنامه نهایی را کامپایل می کند.

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

      مثال : 

      و یک برنامه اصلی به نام program.c که از header فایل استفاده می کند، مثل این است:

      مثال : 

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

      مثال : 

      تنها یک بار include کردن فایل header

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

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

      مثال : 

      این ساختار معمولا به عنوان پوشهifndef# شناخته می شود.

      هنگامی که header دوبار در برنامه اضافه شده باشد، شرط نادرست خواهد بود، زیرا HEADER_FILE تعریف شده است.

      پیش پردازنده تمام محتویات فایل را جست و جو می کند و کامپایلر آن را دو بار نمی بیند.

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

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

      تنظیم include ها

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

      مثال : 

      برای نام هدر بجای گذاشتن پیش پردازنده می توانید یک ماکرو استفاده کنید و به جای نوشتن نام هدر به عنوان دستور آرگومان #include، شما به راحتی می توانید نام ماکرو را در آنجا قرار دهید .

      مثال : 

      SYSTEM_H گسترش خواهد یافت و پیش پردازنده به دنبال system_1.h خواهد بود، همانطور اگر include# در ابتدا نوشته شده بود.SYSTEM_H می تواند توسط Makefile شما با یک گزینه D- تعریف شود.

      کلام پایانی

      این جلسه فایل های header در زبان C و عملیات include کردن در C رو داشتیم ، در ادامه مباحث تخصصی تری از زبان سی را خواهیم داشت.

      QR:  جلسه ۲۳ : فایل های header در C
      به اشتراک بگذارید


      دیدگاه کاربران
      1. تصویر کاربر