C++ ইনলাইন ফাংশন একটি শক্তিশালী ধারণা যা সাধারণত ক্লাসের সাথে ব্যবহার করা হয়। যদি একটি ফাংশন ইনলাইন হয়, তাহলে কম্পাইলার প্রতিটি পয়েন্টে সেই ফাংশনের কোডের একটি কপি রাখে যেখানে কম্পাইলের সময় ফাংশনটি কল করা হয়।
একটি ইনলাইন ফাংশনে যেকোনো পরিবর্তনের জন্য ফাংশনের সমস্ত ক্লায়েন্টকে পুনরায় কম্পাইল করতে হবে কারণ কম্পাইলারকে আবার সব কোড প্রতিস্থাপন করতে হবে অন্যথায় এটি পুরানো কার্যকারিতার সাথে চলতে থাকবে।
একটি ফাংশন ইনলাইন করতে, ফাংশনের নামের আগে কীওয়ার্ড ইনলাইন রাখুন এবং ফাংশনে কল করার আগে ফাংশনটি সংজ্ঞায়িত করুন। সংজ্ঞায়িত ফাংশন একটি লাইনের চেয়ে বেশি হলে কম্পাইলার ইনলাইন কোয়ালিফায়ারকে উপেক্ষা করতে পারে।
শ্রেণী সংজ্ঞায় একটি ফাংশন সংজ্ঞা একটি ইনলাইন ফাংশন সংজ্ঞা, এমনকি ইনলাইন স্পেসিফায়ার ব্যবহার না করেও৷
নিম্নলিখিত একটি উদাহরণ, যা দুটি সংখ্যার সর্বাধিক প্রদান করতে ইনলাইন ফাংশন ব্যবহার করে −
উদাহরণ
#include <iostream> using namespace std; inline int Max(int x, int y) { return (x > y)? x : y; } // Main function for the program int main() { cout << "Max (20,10): " << Max(20,10) << endl; cout << "Max (0,200): " << Max(0,200) << endl; cout << "Max (100,1010): " << Max(100,1010) << endl; return 0; }
আউটপুট
Max (20,10): 20 Max (0,200): 200 Max (100,1010): 1010
এখন দেখা যাক, আমাদের কোড −
-এ ইনলাইন ফাংশন ব্যবহার করার সুবিধা কী কী-
এখানে ফাংশন কল ওভারহেড ঘটবে না।
-
এটি স্ট্যাকের উপর পুশ এবং পপ ভেরিয়েবলের ওভারহেড সংরক্ষণ করে, যখন ফাংশনটি কল করা হয়।
-
এটি একটি ফাংশন থেকে রিটার্ন কলের ওভারহেড সংরক্ষণ করে।
-
যখন একটি ইনলাইন ফাংশন তৈরি করা হয়, তখন কম্পাইলার ফাংশনের মূল অংশে প্রসঙ্গ-নির্দিষ্ট অপ্টিমাইজেশন সঞ্চালন করতে পারে। এই ধরনের অপ্টিমাইজেশন স্বাভাবিক ফাংশনের জন্য সঞ্চালিত হয় না।
-
ছোট ইনলাইন ফাংশন ব্যবহার করা এমবেডেড সিস্টেমের জন্য উপযোগী হতে পারে, কারণ ইনলাইন ফাংশন কল প্রস্তাবনা এবং রিটার্নের চেয়ে কম কোড প্রদান করতে পারে।