volatile মানে দুটি জিনিস:
- ভেরিয়েবলের মান আপনার কোড ছাড়া অন্য কোনো কারণে পরিবর্তিত হতে পারে। তাই কম্পাইলার যখন ভেরিয়েবলের মান পড়ে, সেটি অনুমান করতে পারবে না যে এটি আগের বার পড়ার মতনই, বা শেষ সংরক্ষিত মান জাসাই; এটি আবার পড়তে হবে।
- একটি
volatileভেরিয়েবলে মান সংরক্ষণ করার কাজ একটি "সাইড ইফেক্ট" যা বাইর থেকে পর্যবেক্ষণ করা যায়, তাই কম্পাইলার মান সংরক্ষণ করার কাজটি অপ্টিমাইজ করে বাদ দিতে পারবে না; উদাহরণস্বরূপ, যদি দুটি মান সারি সারি সংরক্ষণ করা হয়, তবে কম্পাইলার অবশ্যই দুবার মান সংরক্ষণ করবে।
উদাহরণস্বরূপ:
i = 2; i = i;
কম্পাইলার অবশ্যই সংখ্যা ২ সংরক্ষণ করবে, ভেরিয়েবল i পড়ে, পড়া মানটি আবার i-তে সংরক্ষণ করবে।
volatile কিওয়ার্ড সম্পর্কে আরও জানতে দেখুন: www.geeksforgeeks.org/understanding-volatile-qualifier-in-c/