Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ทำไมต้องใช้ volatile qualifier ใน C++?

volatile หมายถึงสองสิ่ง:

  • ค่าของตัวแปรอาจเปลี่ยนไปโดยไม่มีโค้ดของคุณเปลี่ยนมัน ดังนั้นเมื่อคอมไพเลอร์อ่านค่าของตัวแปร มันไม่ควรสมมติว่าค่านั้นเหมือนครั้งล่าสุดที่อ่าน หรือเหมือนค่าล่าสุดที่เก็บไว้ แต่ต้องอ่านใหม่ทุกครั้ง
  • การเก็บค่าให้กับตัวแปร volatile เป็น "side effect" ที่สังเกตได้จากภายนอก ดังนั้นคอมไพเลอร์จึงไม่ได้รับอนุญาตให้ลบการกระทำของการเก็บค่า เช่น ถ้ามีการเก็บค่าสองครั้งติดกัน คอมไพเลอร์ต้องเก็บค่าจริงๆ สองครั้ง

ตัวอย่าง:

i = 2; i = i;

คอมไพเลอร์ต้องเก็บเลขสอง อ่านตัวแปร i เก็บค่าที่อ่านได้กลับเข้า i

รายละเอียดเพิ่มเติมเกี่ยวกับคีย์เวิร์ด volatile: www.geeksforgeeks.org/understanding-volatile-qualifier-in-c/