ระเหยหมายถึงสองสิ่ง -
- ค่าของตัวแปรอาจเปลี่ยนแปลงโดยไม่มีรหัสของคุณเปลี่ยนแปลง ดังนั้นเมื่อใดก็ตามที่คอมไพเลอร์อ่านค่าของตัวแปร มันอาจไม่ถือว่าเหมือนกับครั้งสุดท้ายที่อ่าน หรือเหมือนกับค่าสุดท้ายที่เก็บไว้ แต่จะต้องอ่านอีกครั้ง
- การจัดเก็บค่าตัวแปรผันผวนเป็น "ผลข้างเคียง" ซึ่งสามารถสังเกตได้จากภายนอก ดังนั้นคอมไพเลอร์จึงไม่ได้รับอนุญาตให้ลบการเก็บค่า ตัวอย่างเช่น ถ้าเก็บค่าสองค่าในแถว คอมไพเลอร์จะต้องเก็บค่าเป็นสองเท่าจริง ๆ
ยกตัวอย่าง −
i = 2; i = i;
คอมไพเลอร์ต้องเก็บหมายเลขสอง อ่านตัวแปร i เก็บตัวแปรที่อ่านลงใน i
คุณสามารถดูรายละเอียดเพิ่มเติมเกี่ยวกับคำหลักผันผวนได้ที่นี่ - https://www.geeksforgeeks.org/understanding-volatile-qualifier-in-c/