سلام دوستای برنامهنویس عزیز! توی این آموزش میخوایم با «توابع تعریفشده توسط کاربر» در زبان C آشنا بشیم. یعنی خودمون بتونیم تابع بسازیم تا یه کاری خاص رو توی برنامه انجام بده. با هم مثالهاشو میبینیم تا بهتر درکش کنیم ✅
تابع یعنی چی؟
تابع مجموعهای از کده که یه کار مشخص انجام میده. مثلاً فرض کن برنامهای میخوای که اول یه دایره بسازه، بعد بر اساس شعاع و رنگش رنگآمیزیش کنه. میتونی دوتا تابع بسازی:
- تابع createCircle()
- تابع color()
مثال: تابع جمع دو عدد
توی این برنامه، تابعی داریم به اسم addNumbers() که دو عدد صحیح رو جمع میکنه:
#include <stdio.h>
int addNumbers(int a, int b); // نمونه اولیه تابع
int main() {
int n1, n2, sum;
printf("Enters two numbers: ");
scanf("%d %d", &n1, &n2);
sum = addNumbers(n1, n2); // فراخوانی تابع
printf("sum = %d", sum);
return 0;
}
int addNumbers(int a, int b) { // تعریف تابع
int result;
result = a + b;
return result; // return دستور
}
اجزای مرتبط با تابع
- نمونه اولیه تابع
- فراخوانی تابع
- تعریف تابع
- دستور return
نمونه اولیه تابع
این بخش، اعلان تابعه و شامل نام، پارامترهای ورودی و نوع مقدار بازگشتیه. مثل خط زیر:
int addNumbers(int a, int b);
اطلاعاتی که این نمونه اولیه به کامپایلر میده:
- نام تابع: addNumbers()
- نوع مقدار برگشتی: int
- پارامترهای ورودی: دو عدد صحیح به نامهای a و b
اگه تابع قبل از main() تعریف شده باشه، نیازی به نمونه اولیه نیست.
فراخوانی تابع
فراخوانی یعنی گفتن به برنامه: «برو اون تابع رو اجرا کن!» ساختارش اینطوریه:
addNumbers(n1, n2);
کنترل برنامه منتقل میشه به محل تعریف تابع، کدها اجرا میشن، بعد دوباره برمیگرده.
تعریف تابع
این بخش شامل بدنهٔ کده. مثل:
int addNumbers(int a, int b) {
int result;
result = a + b;
return result;
}
ساختار کلی تابع
نوع برگشتی نام تابع(پارامتر۱, پارامتر۲, ...){
// بدنه تابع
}
ارسال آرگومان به تابع
آرگومان یعنی دادههایی که موقع فراخوانی به تابع میفرستی. مثل:
addNumbers(n1, n2);
پارامترهای a و b توی تعریف تابع، همون آرگومانهای ورودی هستن. بهشون میگن "پارامترهای رسمی".
🧠 یادت باشه: نوع آرگومانهای ورودی باید با نوع پارامترها یکی باشه. مثلاً اگه n1 عدد اعشاری باشه، a هم باید float یا double باشه.
دستور return
با دستور return، تابع تموم میشه و مقدار مشخصی رو برمیگردونه. مثلاً:
return result;
یا حتی میتونی بنویسی:
return a + b;
نوع مقدار برگشتی باید با نوع برگشتی تابع (توی اعلان و تعریف) یکی باشه.
امیدواریم این آموزش براتون مفید بوده باشه! این مقاله توسط سایت علمی رایشمند برای شما آماده شده است.