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



  • ۲۵
  • اسفند

جلسه ۱۲ : تابع در C

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

      مقدمه

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

      تعریف یک تابع

      همانطور که هر وسیله از اجزایی تشکیل شده است .زبان C هم از اجزایی تشکیل شده که به آن اجزا در زبان سی تابع می گویند.

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

      زبان سی هم از  گروهی از توابع تشکیل شده است.

      هر برنامه C دارای حداقل یک تابع است که()main است و تمام برنامه های جزئی,توابع اضافی را تعریف می کنند.

      شما می توانید کد را به توابع جداگانه تقسیم کنید.بطوریکه کدت در بین توابع مختلف تقسیم شود.

      اما منطقی است که هر تابع کار خاص خودش رو انجام بدهد.

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

      در کتابخانه استاندارد C چندین تابع تعبیه شده که برنامه شما می تواند آنها را فرا خوانی کند.برای مثال، ()strcatبرای پیوند دادن دو رشته،  () memcpy برای کپی یک مکان حافظه به مکان دیگر و بسیاری از توابع دیگر.یک تابع همچنین می تواند به عنوان یک روش یا یک زیر فرایندو یا یک روند و غیره به کار برود.

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

      مثال : 

      تعریف تابع در برنامه نویسی C شامل هدر و بدنه اصلی تابع می شود. در اینجا تمام بخش های یک تابع  را می بینیم.

      تابع با مقدار بازگشتی وبدون مقدار بازگشتی

      یک تابع ممکن است مقدار را بازگرداند. تابع با استفاده از دستور return  مقادیر تولید شده را به خروجی می دهد. بعضی از توابع عملیات مورد نظررا بدون بازگشت مقدار انجام می دهند. در این حالت، چون این تابع دارای خروجی نیست، در خروجی آن از کلمه void استفاده می شود.

      نام تابع 

      نام واقعی تابع است. توابع با هر نامی که معرفی شوند (حروف‌های بزرگ و کوچک) با همان نام باید در برنامه مورداستفاده قرار گیرند.

      پارامترها

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

      بدنه تابع

      بدنه تابع حاوی مجموعه ای از دستورات است که تعریف می کند که تابع چه عملی انجام دهد.

      مثال

      در زیر کد اصلی یک تابع به نام () max است. این تابع دو پارامتر num1 و num2 را دریافت می کند و حداکثر مقدار را برمی گرداند.

      مثال : 

      تابع اعلان

      یک تابع اعلانی به کامپایلر در مورد نام تابع و نحوه فراخوانی تابع  اطلاعاتی می دهد. بدنه واقعی تابع می تواند جداگانه تعریف شود.

      یک تابع اعلان شده دارای بخش های زیر است

      یک تابع اعلانی را در این قسمت دنبال می کنیم.

      مثال : 

      برای تابع تعریف شده () max، تابع declaration به صورت زیر است .

      مثال : 

      نام پارامتر در تابع اعلانی مهم نیست فقط نوع آنها مورد نیاز است،درقسمت پایین دنبال می کنیم.

      مثال : 

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

      فراخوانی تابع در C

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

      مثال : 

      ما  () max را با() main حفظ  و کد منبع را کامپایل کردیم. در اجرا نهایی این نتیجه تولید می شود.

      مثال : 

      آرگومان تابع – آرگومانها در C

      اگر یک تابع از آرگومان استفاده می کند، باید متغیر هایی را که مقادیر آرگومان را قبول می کنند،اعلام کند. این متغیرها پارامترهای اصلی تابع هستند.پارامترهای اصلی مانند سایر متغیرهای محلی درون تابع رفتار می کنند و به مجرد ورود به تابع ایجاد می شوند و پس از خروج از بین می روند.هنگام فراخوانی تابع در C ، دو راه وجود دارد که آرگومان بتواند به یک تابع منتقل شود:

      فراخوانی  و توضیحات
      ۱فراخوانی تابع با مقدار

      در فراخوانی تابع با مقدار یک کپی از مقدار آرگومان‌های تابع روی پارامترهای آن نوشته می‌شود، بنابراین تغییر کردن آرگومان تاثیری روی مقدار پارامتر نمی‌گذارد.

      ۲فراخوانی با ارجاع

      در این روش آدرس آرگومان روی پارامتر کپی می‌شود. در بدنه تابع از آدرس ارسال شده برای دسترسی به آرگومان استفاده می‌شود، به این ترتیب تغییرات ایجاد شده در متغیر پارامتر، روی آرگومان نیز تاثیر می‌گذارد.


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

      کلام پایانی

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

      QR:  جلسه ۱۲ : تابع در C
      به اشتراک بگذارید