সি++ প্রোগ্রামিং ল্যাঙ্গুয়েজ টিউটোরিয়াল [পর্ব ৬] ফাংশন প্রোটোটাইপ

0
344
সি++ প্রোগ্রামিং ল্যাঙ্গুয়েজ টিউটোরিয়াল [পর্ব ৬] ফাংশন প্রোটোটাইপ

আহমেদ ওয়াহিদ

কম্পিউটার, প্রযুক্তি এবং প্রোগ্রামিং ভালোবাসি অনেক। ধন্যবাদ।
সি++ প্রোগ্রামিং ল্যাঙ্গুয়েজ টিউটোরিয়াল [পর্ব ৬] ফাংশন প্রোটোটাইপ

সি দিয়ে হয়তো এখনকার সব আধুনিক সফটওয়্যার বানানো সম্ভব নয়, তবে সব ধরনের ল্যাঙ্গুয়েজের ভিত্তি হলো সি। আসলে সি দিয়ে আধুনিক সফটওয়্যারের লজিক দাঁড় করানো সম্ভব এবং এটিই একটি সফটওয়্যারের প্রধান অংশ। সি-তে ফাংশন ব্যবহারের সুবিধা একদিকে যেমন প্রোগ্রামকে করে দ্রুততর, তেমনি ইউজারের জন্য কোডিং করে তুলে আরও সহজ। ফাংশনের ব্যবহার নিয়ে আগের সংখ্যায় আলোচনা করা হয়েছে। এ সংখ্যায় ফাংশনের ব্যবহারের আরও গভীরে ঢোকা হয়েছে এবং দেখানো হয়েছে কীভাবে ফাংশন আসলে কাজ করে এবং তা কী কী উপায়ে ব্যবহার করা যায়।

ফাংশন প্রোটোটাইপ

Unlimited Web Hosting
Unlimited Web Hosting
Unlimited Web Hosting
Unlimited Web Hosting

শুরুতেই ফাংশনের প্রোটোটাইপ সম্পর্কে আলোচনা করা হয়েছে। আমরা জানি, সি-তে প্রোগ্রাম শুরু হয় মেইন ফাংশন থেকে। প্রোগ্রামে অনেক বিল্টইন ফাংশন ব্যবহার করা হয় এবং এসব বিল্টইন ফাংশন সংশ্লিষ্ট হেডার ফাইল থেকে ইম্পোর্ট করা হয়। তাই আলাদা কোনো কিছু করার প্রয়োজন পড়ে না। কিন্তু ইউজার যদি নিজের নতুন ফাংশন ব্যবহার করতে চান, তাহলে প্রত্যেক ফাংশনের প্রোটোটাইপ ব্যবহার করতে হবে। ফাংশনের প্রোটোটাইপ হলো আর কিছুই নয় শুধু ফাংশনের নাম মেইন ফাংশনের আগে লিখে দেয়া।

এটি লেখার নিয়ম হলো :

‘রিটার্ন টাইপ ফাংশনের নাম (ফাংশনের প্যারামিটার)’। এটি মেইন ফাংশনের আগে যেকোনো জায়গায় লিখলেই হবে, শেষে সেমিকোলন দিতে হবে। তবে এখানে একটি বিশেষ নিয়ম আছে। ইউজার ডিফাইন্ড ফাংশনের বডি যদি মেইন ফাংশনের পরে লেখা হয়, তাহলে উল্লিখিত ফাংশনের প্রোটোটাইপ দেয়া আবশ্যক, আর বডি যদি মেইন ফাংশনের আগেই লেখা হয় তাহলে আর প্রোটোটাইপ দিতে হবে না।

অবশ্যই খেয়াল রাখতে হবে প্রোটোটাইপে দেয়া ফাংশনের রিটার্ন টাইপ, ফাংশনের নাম এবং প্যারামিটার যেন ফাংশনের বডিতে দেয়া রিটার্ন টাইপ, নাম এবং প্যারামিটার একই হয়। ফাংশনের প্যারামিটারে ব্যবহার হওয়া ভেরিয়েবলের রিটার্ন টাইপ অবশ্যই দিতে হবে।

যেমন : ইউজার যদি নিউ ফাংশন নামে একটি ফাংশন তৈরি করেন এবং তার প্যারামিটারে যদি দুটি ইন্টিজার থাকে তাহলে এর প্রোটোটাইপ হবে : void newFunction(int x,int y);। ফাংশনের বডির শুরুতেও এরকম ডেফিনেশন দিতে হবে, শুধু পার্থক্য হলো কোনো সেমিকোলন থাকবে না।

এবার ফাংশনের রিটার্ন টাইপ এবং ফাংশন দিয়ে কীভাবে ভ্যালু রিটার্ন করা সম্ভব তা নিয়ে আলোচনা করা যাক।

রিটার্ন টাইপ মানে যেকোনো ধরনের ডাটা টাইপ অথবা যদি কিছুই রিটার্ন করার দরকার না হয় সেক্ষেত্রে ভয়েড। ওপরের উদাহরণ থেকে দেখা যাচ্ছে ফাংশনটির রিটার্ন টাইপ ভয়েড অর্থাৎ এই ফাংশনটিকে যেখানে কল করা হবে সেখানে এটি কোনো ভ্যালু রিটার্ন করবে না। ফাংশন কী রিটার্ন করবে না করবে সেটি return; স্টেটমেন্ট দিয়ে নির্ধারণ করা হয়।

যদি ফাংশনকে কোনো ভ্যালু রিটার্ন করতে হয় তাহলে রিটার্ন স্টেটমেন্টের পর সেই ভ্যালু দিয়ে হয়। আর যদি কোনো ভ্যালু রিটার্নের দরকার না হয়, তাহলে শুধু রিটার্ন লিখে সেমিকোলন দিতে হবে। অথবা কোনো রিটার্ন স্টেটমেন্ট না লিখলেও হবে, সেক্ষেত্রে ফাংশন যেখানে শেষ হয়ে যাবে, সেখান থেকে সে নিজেই রিটার্ন করবে।

নিচে রিটার্ন নিয়ে একটি উদাহরণ দেয়া হলো।

ধরা যাক, এমন একটি ফাংশন লেখার প্রয়োজন পড়ল যেন তা একটি ইন্টিজার, একটি ক্যারেক্টার নিতে পারে এবং সেই ক্যারেক্টারের আস্কিং ভ্যালু দিয়ে (স্ট্যান্ডার্ড ভ্যালু) ওই ইন্টিজারকে গুণ করলে যে ভ্যালু পাওয়া যায়, তা রিটার্ন করে। তাহলে ফাংশনের বডি নিচের মতো হবে :

int newFunction(int x,char y)
{
printf(`the value is returned!!’);
return x*y;
}

এখানে দেখা যাচ্ছে, ফাংশনটি ইন্টিজার টাইপের ডাটা রিটার্ন করতে সক্ষম। এর দুটি প্যারামিটার অর্থাৎ এটি দুটি ভেরিয়েবল নিতে পারবে, যার একটি ইন্টিজার এবং আরেকটি ক্যারেক্টার। ভ্যালু নেয়ার পর এটি প্রদত্ত লাইনটি প্রিন্ট করবে, তারপর নির্দিষ্ট ভ্যালু রিটার্ন করবে। ভ্যালু রিটার্ন করার অর্থ হলো যদি প্রোগ্রামে কোথাও লেখা থাকে যে i=newFunction(2,A) তাহলে i এর ভ্যালু হিসেবে ১৩০ নির্ধারিত হবে, কারণ A-এর আস্কিং ভ্যালু ৬৫।

টিউনারপেজের নতুন টিউন আপনাকে ইমেইল করব?
Unlimited Web Hosting
Unlimited Web Hosting
Unlimited Web Hosting
Unlimited Web Hosting

একটি উত্তর ত্যাগ

Please enter your comment!
Please enter your name here

3 × 2 =