এই C/C++ ফাংশন কল পাজল হল একটি ধাঁধা যা C এবং C++/ উভয় প্রোগ্রামিং ভাষাতেই মেথড কলিং এর আচরণ সম্পর্কে আরও অন্বেষণ করার উদ্দেশ্যে।
C এবং C++ এ একটি পদ্ধতির আউটপুট ভিন্ন। চলুন দেখি C এবং C++ এ কলিং পদ্ধতির পার্থক্য কি।
আসুন একটি উদাহরণ নেওয়া যাক এবং c এবং c++ এ নীচের কোডের আউটপুট পরীক্ষা করুন।
উদাহরণ
void method() { // Print statement } int main() { method(); method(2); }
আউটপুট
C++ - এর জন্য
Error : too many arguments to function ‘void method()’ফাংশন করার জন্য অনেক বেশি আর্গুমেন্ট
C - এর জন্য
Program runs without any error.
আউটপুট এবং ত্রুটির পিছনে যুক্তি
C++ প্রোগ্রামিং ল্যাঙ্গুয়েজের কম্পাইলাররা ফাংশন মেথড() কে কোনো প্যারামিটার ছাড়াই একটি ফাংশন হিসেবে বিবেচনা করে যেখানে C কম্পাইলারের একই ফাংশন বেশ দক্ষতার সাথে কাজ করে কারণ কম্পাইলার ফাংশন মেথড() কে এমন একটি ফাংশন হিসেবে বিবেচনা করে যা পরিবর্তনশীল আর্গুমেন্ট গ্রহণ করতে পারে।
এর কারণে i C++ যখন আমরা এমন একটি পদ্ধতিতে আর্গুমেন্ট পাস করি যার সংজ্ঞায় কোনো প্যারামিটার নেই তখন আউটপুট উইন্ডোতে একটি ত্রুটি প্রম্পট হবে 'ত্রুটি:'অকার্যকর ফাংশন()' ফাংশনের জন্য অনেকগুলি আর্গুমেন্ট।
এবং সি-তে, পাস করা আর্গুমেন্ট গৃহীত হয় এবং ফাংশনের ভিতরের কোডটি কার্যকর করা হয়।