সি ++ এ ইনলাইন এবং ম্যাক্রোর মধ্যে পার্থক্য
কন্টেন্ট
ম্যাক্রো হ'ল একটি নির্দেশ যা অনুরোধের সময় প্রসারিত হয়। ক্রিয়াকলাপগুলি ম্যাক্রোর মতো সংজ্ঞায়িতও করা যায়। একইভাবে, ইনলাইন ফাংশনগুলিও তার অনুরোধের সময়ে প্রসারিত হয়। ইনলাইন এবং ম্যাক্রো ফাংশনের মধ্যে একটি প্রাথমিক পার্থক্য হ'ল ইনলাইন ফাংশন সময় বাড়ানো হয় সংকলন, এবং ম্যাক্রো প্রোগ্রামটি যখন দ্বারা প্রক্রিয়া করা হয় তখন প্রসারিত হয় প্রাক প্রসেসর.
আসুন তুলনা চার্টের সাহায্যে ইনলাইন এবং ম্যাক্রোর মধ্যে পার্থক্যটি অধ্যয়ন করি।
- তুলনা রেখাচিত্র
- সংজ্ঞা
- মূল পার্থক্য
- উপসংহার
তুলনা রেখাচিত্র
তুলনা করার জন্য বেস | সারিতে | ম্যাক্রো |
---|---|---|
মৌলিক | ইনলাইন ফাংশন সংকলক দ্বারা পার্স করা হয়। | ম্যাক্রোগুলি প্রিপ্রসেসর দ্বারা প্রসারিত হয়। |
বাক্য গঠন | ইনলাইন রিটার্ন_ টাইপ ফান্ট_নাম (পরামিতি) {। । । } | # নির্ধারিত ম্যাক্রো_নাম চর_সিকোয়েন্স |
ব্যবহৃত কীওয়ার্ড | সারিতে | # define |
নির্ধারিত | এটি শ্রেণীর ভিতরে বা বাইরে সংজ্ঞায়িত করা যেতে পারে। | এটি প্রোগ্রামের শুরুতে সর্বদা সংজ্ঞায়িত হয়। |
মূল্যায়ন | এটি যুক্তিটি একবারে মূল্যায়ন করে। | কোডটিতে প্রতিবার এটি ব্যবহার করা হলে এটি যুক্তিটি মূল্যায়ন করে। |
সম্প্রসারণ | সংকলকটি সমস্ত ক্রিয়াকে ইনলাইন এবং প্রসারিত করতে পারে না। | ম্যাক্রো সর্বদা প্রসারিত হয়। |
স্বয়ংক্রিয়তা | ক্লাসের ভিতরে সংক্ষিপ্ত ফাংশনগুলি স্বয়ংক্রিয়ভাবে ইনলাইন ফাংশনগুলিতে তৈরি করা হয়। | ম্যাক্রোগুলি নির্দিষ্টভাবে সংজ্ঞায়িত করা উচিত। |
অ্যাক্সেস করা | কোনও ইনলাইন সদস্য ফাংশন ক্লাসের ডেটা সদস্যদের অ্যাক্সেস করতে পারে। | ম্যাক্রোস কখনই শ্রেণীর সদস্য হতে পারে না এবং শ্রেণীর ডেটা সদস্যদের অ্যাক্সেস করতে পারে না। |
পরিসমাপ্তি | ইনলাইন ফাংশনটির সংজ্ঞা ইনলাইন ফাংশনের শেষে কোঁকড়ানো বন্ধনীগুলির সাথে শেষ হয়। | ম্যাক্রোর সংজ্ঞাটি নতুন লাইনের সাথে শেষ হয়। |
ডিবাগ | একটি ইনলাইন ফাংশনের জন্য ডিবাগ করা সহজ কারণ সংকলনের সময় ত্রুটি পরীক্ষা করা হয়। | সংকলনের সময় ত্রুটি পরীক্ষা করা না হওয়ায় ম্যাক্রোদের পক্ষে ডিবাগিং করা কঠিন হয়ে পড়ে। |
বাঁধাই | একটি ইনলাইন ফাংশন ফাংশনের শরীরে সমস্ত বিবৃতি খুব ভালভাবে ফাংশনটির শুরুর সাথে আবদ্ধ করে এবং কোঁকড়া বন্ধনী দিয়ে শেষ হয়। | একটি ম্যাক্রো বাধ্যতামূলক সমস্যার মুখোমুখি হয় যদি এটির একাধিক বক্তব্য থাকে, কারণ এতে কোনও সমাপ্তি চিহ্ন নেই। |
ইনলাইন সংজ্ঞা
একটি ইনলাইন ফাংশনটি নিয়মিত ফাংশনের মতো মনে হয় তবে এর আগে মূল শব্দটি “সারিতে"। ইনলাইন ফাংশনগুলি হ'ল সংক্ষিপ্ত দৈর্ঘ্যের ফাংশন যা ডাকা হওয়ার পরিবর্তে এর অনুরোধের বিন্দুতে প্রসারিত হয়। আসুন একটি উদাহরণ সহ ইনলাইন ফাংশনগুলি বুঝতে পারি।
# অন্তর্ভুক্ত উপরের প্রোগ্রামে, আমি ঘোষিত ও সংজ্ঞায়িত করেছি, ফাংশনটি "উদাহরণ" শ্রেণিতে একটি ইনলাইন ফাংশন হিসাবে (), আরম্ভ করুন। ইনিশিয়ালাইজেশন () ফাংশনটির কোডটি প্রসারিত হবে যেখানে এটি "উদাহরণ" শ্রেণীর অবজেক্টের মাধ্যমে আহ্বান করা হয়েছে। সি ++ এ ক্লাসের ভিতরে সংজ্ঞায়িত ফাংশনটি স্বয়ংক্রিয়ভাবে ফাংশনের দৈর্ঘ্য বিবেচনা করে সংকলক দ্বারা ইনলাইন তৈরি করা হয়। ম্যাক্রো একটি "প্রিপ্রোসেসরস নির্দেশিকা"। সংকলনের আগে প্রোগ্রামটি প্রিপ্রোসেসর দ্বারা পরীক্ষা করা হয় এবং যেখানে প্রোগ্রামে ম্যাক্রোটি খুঁজে পাওয়া যায়, এটি তার সংজ্ঞা অনুসারে সেই ম্যাক্রোকে প্রতিস্থাপন করে। সুতরাং, ম্যাক্রোটিকে "প্রতিস্থাপন" হিসাবে বিবেচনা করা হয়। আসুন একটি উদাহরণ সহ ম্যাক্রো অধ্যয়ন করি। # অন্তর্ভুক্ত উপরের কোডে, আমি একটি ম্যাক্রো ফাংশন গ্রেটার () ঘোষণা করেছিলাম, যা উভয় পরামিতির তুলনা করে এবং আরও বেশি সংখ্যক সন্ধান করে। আপনি পর্যবেক্ষণ করতে পারেন যে ম্যাক্রোটি কেবলমাত্র নতুন লাইনের মাধ্যমে বন্ধ করা হওয়ায় ম্যাক্রোটি বন্ধ করার জন্য কোনও সেমিকোলন নেই। যেহেতু ম্যাক্রো কেবলমাত্র একটি প্রতিস্থাপন, এটি ম্যাক্রোর কোডটি প্রসারিত করবে যেখানে এটি আহ্বান করা হয়েছে। ইনলাইন ফাংশন ম্যাক্রো ফাংশনের চেয়ে অনেক বেশি বিশ্বাসযোগ্য। সি ++ ধ্রুবককে সংজ্ঞায়িত করার জন্য আরও ভাল উপায় সরবরাহ করে যা "কনস্ট" শব্দটি ব্যবহার করে।
ম্যাক্রো সংজ্ঞা
উপসংহার: