close
دانلود فیلم
فراخوانی تابع

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

هر زمان که به تابع نياز باشد نام آن صدا زده می شود. اين عمل فراخوانی تابع ناميده می شود. برنامه يا تابعی ک تابع را فراخوانی می کند فراخواننده تابع (function caller) ناميد می شود. هنگام فراخوانی تابع، مقدار آرگومان های تابع بايد مشخص شود.

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


مثال. تابع square به صورت زير در برنامه اصلی صدا زده می شود.

double sq = square(num);
cout << sq;
يا
cout << square(num);

مثال. فراخوانی تابعی که آرگومانی ندارد. تابع مربع اعداد 1 تا 10 را نمايش می دهد.

#include <iostream.h>
void squares();
main() {
   squares();
}
void squares() {
   int loop;
   for (loop=1;loop < 10;loop++);
      cout << loop*loop;
}


پروتوتايپ تابع

کامپایلر ++C نمی تواند تابعی را صدا بزند که چیزی درباره آن نمی داند. باید قبل از فراخوانی تابع به کامپایلر اجازه دهید بداند تابع چیست و چه کار می کند. یک راه برای انجام این کار اطمینان از نوشتن بدنه تابع قبل از فراخوانی آن است. را ه دیگر استفاده از پروتوتايپ تابع (prototype) است. پروتوتايپ تابع شرحی از نام، نوع برگشتی و نوع آرگومانهای تابع به کامپايلر ارائه می دهد. به اين ترتيب هنگام فراخوانی تابع کامپايلر صحت فراخوانی را بررسی می کند که آيا نوع و تعداد آرگومانهای ارسال شده به تابع و استفاده از مقدار برگشتی صحيح است يا خير.


مثال. پروتوتايپ تابع square.

double square(double n);


پروتوتايپ تابع مشابه اعلان تابع است منتها هميشه به سمیکولن(;) ختم می شود. یعد از تکميل تابع با استفاده از امکانcopy-and-paste اديتور می توانيد هدر تابع را کپی کرده و پروتوتايپ آنرا بسازيد. فقط دقت کنيد در انتهای آن علامت سميکولن را اضافه کنيد.

پروتوتايپ توابع بهتر است در ابتدای برنامه و قبل از تایع اصلی باشند.
در پروتوتايپ اسم متغيرهای آرگومان هم می تواند ذکر شود ولی اختياری است.

لینک کوتاه پست
مطالب مرتبط با پست جاری
  • نکات مهم
    1- لطفا نظر خود را با زبان فارسی بیان کنید
    2- رایتم نظرات اسپم و تبلیغی شما را تایید نمی کند
    3- لطفا نظرات شما بدون ابهام و واضح باشد
  • نام
    ایمیل (منتشر نمی‌شود) (لازم)
    وبسایت
    :):(;):D;)):X:?:P:*=((:O@};-:B/:):S
    نظر خصوصی
    مشخصات شما ذخیره شود ؟[حذف مشخصات] [شکلک ها]
    کد امنیتی
به کانال تلگرام سایت ما بپیوندید