Tài liệu MSDN cho "dễ bay hơi" trong Visual C++ chỉ ra rằng các ghi có "ngữ nghĩa phát hành" và đọc có "ngữ nghĩa học", ngoài việc đảm bảo đọc luôn đọc từ bộ nhớ và ghi luôn viết cho phù hợp.Visual C++ Volatile
Thông số C cho "dễ bay hơi" bao gồm phần thứ hai (không làm tối ưu hóa điên), nhưng không phải là phần đầu tiên (hàng rào bộ nhớ).
Có cách nào trong Visual C++ chỉ nhận hành vi biến động "C" mà không có hàng rào bộ nhớ không?
Tôi muốn buộc biến luôn ở trên ngăn xếp, ở vị trí cố định, nhưng tôi không muốn lấy chi phí của hàng rào bộ nhớ trên mọi nhiệm vụ cho nó.
Có cách nào dễ dàng để thực hiện điều đó bằng nguồn Visual C++ không?
Phần đầu tiên không phải là hành vi Standard C++, tôi nghĩ vậy. Tôi không chắc chắn, mặc dù. – Nawaz
"Tôi muốn buộc một biến luôn ở trên ngăn xếp, ở một vị trí cố định" và làm thế nào 'biến động' sẽ giúp với điều đó? FWIW, các biến là * luôn luôn * ở một vị trí cố định. @ Nawaz: không, phần đầu tiên không phải là tiêu chuẩn. –
@Fernades Biến cục bộ KHÔNG phải lúc nào cũng ở vị trí cố định. Các biến cục bộ có thể được loại bỏ hoặc địa chỉ của chúng trên ngăn xếp có thể ở các vị trí khác nhau tùy thuộc vào vị trí của PC. Trình tối ưu hóa có thể thực hiện rất nhiều thứ điên rồ. Tôi muốn ngăn chặn những tối ưu hóa đó. Cách để làm điều đó là sử dụng "dễ bay hơi". Tuy nhiên, tôi không muốn hàng rào bộ nhớ không bắt buộc mà Visual C++ ném vào. –