কম্পিউটার

C/C++-এ একটি পুনঃপ্রবেশকারী ফাংশন কী?


এখানে আমরা C বা C++ এ রিএন্ট্রান্ট ফাংশন কি তা দেখব। একটি ফাংশনকে রি-এন্ট্রান্ট ফাংশন বলা হয় যদি কার্যকর করার সময় সেই ফাংশনটি বাধা দেওয়ার বিধান থাকে, তারপরে ISR (ইন্টারপ্ট সার্ভিস রুটিন) পরিষেবা দেয় এবং তারপরে কাজটি পুনরায় শুরু করে। এই ধরণের ফাংশনগুলি বিভিন্ন ক্ষেত্রে ব্যবহৃত হয় যেমন, পুনরাবৃত্তি, হার্ডওয়্যার ইন্টারাপ্ট হ্যান্ডলিং।

একটি reentrant ফাংশন জন্য কিছু বৈশিষ্ট্য থাকা উচিত. এইগুলি নীচে তালিকাভুক্ত করা হয়েছে -

  • এই ধরনের ফাংশন কোনো গ্লোবাল বা স্ট্যাটিক ভেরিয়েবল ব্যবহার করবে না। কোন বিধিনিষেধ নেই, তবে এটি সাধারণত পরামর্শ দেওয়া হয় না। কারণ ইন্টারাপ্ট গ্লোবাল ভেরিয়েবলের মান পরিবর্তন করতে পারে, তাই ISR থেকে ফিরে আসার পরে ফাংশনটি কিছু নতুন মান পেতে পারে এবং ফলাফল ভিন্ন হবে।

  • পুনঃপ্রবেশকারী ফাংশন তার নিজস্ব কোড পরিবর্তন করা উচিত নয়. আমাদের প্রয়োজন ফাংশনের ক্রিয়াটি কোড জুড়ে একই থাকা উচিত।

  • অন্য একটি বৈশিষ্ট্য হল পুনঃপ্রবেশকারী ফাংশনটি অন্য কোন নন-রিএন্ট্রান্ট ফাংশনকে কল করা উচিত নয়।

উদাহরণ

int x;
int my_function() {
   return x * 10;
}
int my_second_function() {
   return my_function() * 20;
}

এখানে এই দুটি ফাংশন নন-এন্ট্রান্ট। প্রথমটি একটি গ্লোবাল ভেরিয়েবল ব্যবহার করছে, তাই এটি অ-প্রবেশকারী। দ্বিতীয়টি একটি নন-এন্ট্রান্ট ফাংশনকে কল করছে, তাই এগুলিও পুনরায় প্রবেশকারী ফাংশন নয়৷

উদাহরণ

int my_function(int x) {
   return x * 10;
}
int my_second_function(int x) {
   return my_function(x) * 20;
}

এখন এই দুটি ফাংশন হল পুনঃপ্রবেশকারী ফাংশন।


  1. C/C++ এ ল্যাম্বডা ফাংশনের তাৎপর্য

  2. C/C++(3.5) এ ফাংশন

  3. C/C++ এ putwchar() ফাংশন

  4. C/C++ এ সিস্টেম() ফাংশন