একটি ফাংশন হল বিবৃতির একটি গ্রুপ যা একসাথে একটি কাজ সম্পাদন করে। প্রতিটি C প্রোগ্রামে অন্তত একটি ফাংশন থাকে, যেটি হল main() , এবং সব অতি তুচ্ছ প্রোগ্রাম অতিরিক্ত ফাংশন সংজ্ঞায়িত করতে পারে।
আপনি আপনার কোডকে আলাদা ফাংশনে ভাগ করতে পারেন। আপনি কীভাবে আপনার কোডকে বিভিন্ন ফাংশনের মধ্যে ভাগ করবেন তা আপনার উপর নির্ভর করে, তবে যৌক্তিকভাবে বিভাজনটি এমন যে প্রতিটি ফাংশন একটি নির্দিষ্ট কাজ সম্পাদন করে।
একটি ফাংশন ঘোষণা কম্পাইলারকে একটি ফাংশনের নাম, রিটার্ন টাইপ এবং প্যারামিটার সম্পর্কে বলে। একটি ফাংশন সংজ্ঞা ফাংশনের প্রকৃত বডি প্রদান করে।
সি স্ট্যান্ডার্ড লাইব্রেরি অসংখ্য বিল্ট-ইন ফাংশন প্রদান করে যা আপনার প্রোগ্রাম কল করতে পারে। উদাহরণস্বরূপ, strcat() দুটি স্ট্রিং সংযুক্ত করতে, memcpy() একটি মেমরি অবস্থান অন্য অবস্থানে অনুলিপি করতে, এবং আরও অনেক ফাংশন।
একটি ফাংশনকে একটি পদ্ধতি বা একটি উপ-রুটিন বা একটি পদ্ধতি, ইত্যাদি হিসাবেও উল্লেখ করা যেতে পারে।
ফাংশন সংজ্ঞায়িত করা
সি প্রোগ্রামিং ভাষায় একটি ফাংশনের সংজ্ঞার সাধারণ রূপটি নিম্নরূপ –
return_type function_name( parameter list ) { body of the function }
সি প্রোগ্রামিং এর একটি ফাংশন সংজ্ঞা একটি ফাংশন হেডার এবং একটি ফাংশন বডি নিয়ে গঠিত। এখানে একটি ফাংশনের সমস্ত অংশ রয়েছে −
-
রিটার্ন টাইপ - একটি ফাংশন একটি মান প্রদান করতে পারে। রিটার্ন_টাইপ হল ফাংশনটি যে মান প্রদান করে তার ডেটা প্রকার। কিছু ফাংশন একটি মান ফেরত ছাড়াই পছন্দসই ক্রিয়াকলাপ সম্পাদন করে। এই ক্ষেত্রে, return_type হল কীওয়ার্ড void।
-
ফাংশনের নাম - এটি ফাংশনের আসল নাম। ফাংশনের নাম এবং প্যারামিটার তালিকা একসাথে ফাংশন স্বাক্ষর গঠন করে।
-
প্যারামিটার - একটি প্যারামিটার একটি স্থানধারকের মত। যখন একটি ফাংশন আহ্বান করা হয়, আপনি প্যারামিটারে একটি মান পাস করেন। এই মানটিকে প্রকৃত প্যারামিটার বা আর্গুমেন্ট হিসাবে উল্লেখ করা হয়। পরামিতি তালিকা একটি ফাংশনের প্যারামিটারের ধরন, ক্রম এবং সংখ্যা বোঝায়। পরামিতি ঐচ্ছিক; অর্থাৎ, একটি ফাংশনে কোনো প্যারামিটার থাকতে পারে।
-
ফাংশন বডি − ফাংশন বডিতে বিবৃতিগুলির একটি সংগ্রহ রয়েছে যা ফাংশনটি কী করে তা নির্ধারণ করে৷
উদাহরণ কোড
/* function returning the max between two numbers */ int max(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; }
ফাংশন ঘোষণা
একটি ফাংশন ঘোষণা কম্পাইলারকে একটি ফাংশনের নাম এবং ফাংশনটিকে কীভাবে কল করতে হয় সে সম্পর্কে বলে। ফাংশনের প্রকৃত অংশ আলাদাভাবে সংজ্ঞায়িত করা যেতে পারে।
একটি ফাংশন ঘোষণার নিম্নলিখিত অংশগুলি রয়েছে -
return_type function_name( parameter list );
উপরের সংজ্ঞায়িত ফাংশন max(), ফাংশন ঘোষণা নিম্নরূপ −
int max(int num1, int num2);
ফাংশন ঘোষণায় প্যারামিটারের নাম গুরুত্বপূর্ণ নয় শুধুমাত্র তাদের প্রকার প্রয়োজন, তাই নিম্নলিখিতটিও একটি বৈধ ঘোষণা -
int max(int, int);
ফাংশন কলিং
একটি সি ফাংশন তৈরি করার সময়, আপনি ফাংশনটি কী করতে হবে তার একটি সংজ্ঞা দেন। একটি ফাংশন ব্যবহার করার জন্য, আপনাকে সংজ্ঞায়িত কাজটি সম্পাদন করতে সেই ফাংশনটিকে কল করতে হবে।
যখন একটি প্রোগ্রাম একটি ফাংশন কল করে, তখন প্রোগ্রাম কন্ট্রোল কল ফাংশনে স্থানান্তরিত হয়। একটি কল ফাংশন একটি সংজ্ঞায়িত কাজ সম্পাদন করে এবং যখন এটির রিটার্ন স্টেটমেন্ট কার্যকর করা হয় বা যখন এটির ফাংশন-এন্ডিং ক্লোজিং ব্রেস পৌঁছে যায়, তখন এটি প্রোগ্রাম নিয়ন্ত্রণকে মূল প্রোগ্রামে ফিরিয়ে দেয়।
একটি ফাংশন কল করার জন্য, আপনাকে কেবল ফাংশনের নাম সহ প্রয়োজনীয় প্যারামিটারগুলি পাস করতে হবে এবং যদি ফাংশনটি একটি মান প্রদান করে, তাহলে আপনি প্রত্যাবর্তিত মান সংরক্ষণ করতে পারেন। যেমন −
উদাহরণ কোড
#include <stdio.h> /* function declaration */ int max(int num1, int num2); int main () { /* local variable definition */ int a = 100; int b = 200; int ret; /* calling a function to get max value */ ret = max(a, b); printf( "Max value is : %d\n", ret ); return 0; } /* function returning the max between two numbers */ int max(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; }
আউটপুট
Max value is : 200