Aracılığıyla paylaş


geçici (C++)

Programda donanım tarafından değiştirilebilir bir nesne bildirmek için kullanabileceğiniz bir türü niteleyicisi.

volatile declarator ;

Notlar

Kullanabileceğiniz /geçici derleyici bu anahtar sözcük yorumlama şekli değiştirmek için derleyici anahtarı.

Visual Studio yorumlar volatile hedef mimari bağlı olarak farklı anahtar sözcüğü.arm, hiç için /volatile derleyici seçeneği belirtildiği için derleyici yapar gibi /volatile:iso belirtildi.Başka hiçbir arm mimarileri için /volatile derleyici seçeneği belirtildiği için derleyici yapar gibi /volatile:ms belirtildi; Bu nedenle, farklı arm mimarileri için belirttiğiniz öneririz /volatile:isove iş parçacıkları arasında paylaşılan bellek ile uğraşırken açık eşitleme ilkel ve iç derleyiciler kullanın.

Kullanabileceğiniz volatile kesme işleyicileri gibi zaman uyumsuz işlemler tarafından kullanılan bellek konumlarına erişim sağlamak için niteleyici.

Zaman volatile da olan bir değişken kullanılan __restrict anahtar sözcüğü, volatile göre öncelik kazanır.

Varsa bir struct üye olarak işaretlenmiş volatile, sonra volatile için tüm yapı yayılır.Bir yapı kopyalanabilir bir uzunluğu geçerli mimarisine bir yönerge kullanarak yoksa volatile bu yapıya tamamen kaybolabilir.

volatile Anahtar sözcüğünü aşağıdaki koşullardan biri doğruysa, bir alan üzerinde bir etkisi olabilir:

  • Geçici alan uzunluğunu bir yönerge kullanarak geçerli mimarisine kopyalanabilmesi için en büyük boyutu aşıyor.

  • En dıştaki içeren uzunluğu struct— veya büyük bir olasılıkla iç içe bir üyesi ise, struct— bir yönerge kullanarak geçerli mimarisine kopyalanabilmesi için boyut sınırını aşıyor.

İşlemci un-cacheable bellek erişimi yeniden sıralamak değil de, un-cacheable değişkenleri olarak işaretlenmesi gereken volatile derleyici bellek yeniden değil güvence altına almak için erişir.

Nesneleri olarak bildirilen volatile değerlerine herhangi bir zamanda değiştirebilirsiniz çünkü bazı iyileştirmeleri kullanılmaz.İstenildiğinde, sistem aynı nesneden bir değer için önceki yönergeyi sorular bile her zaman geçici bir nesne geçerli değerini okur.Ayrıca, nesnenin değerini atamayı hemen yazılır.

ISO uyumlu

Aşina iseniz C# geçici anahtar sözcüğünü ya da davranışı ile tanıdık volatile Visual C++'ın önceki sürümlerinde dikkat edin, c ++ 11 ISO standardı volatile farklıdır ve Visual Studio öğesinde desteklenen anahtar sözcük, /volatile:iso derleyici seçeneği belirtildi.(arm için bunu varsayılan olarak belirtilir).volatile Anahtar sözcüğünü c ++ 11 ISO standart kodudur yalnızca donanım erişim için; kullanılacak inter-thread iletişim için kullanmayın.İnter-Thread iletişim için mekanizmalar gibi kullanmak std::atomic <T> dan c++ standart Şablon Kütüphanesi.

Microsoft özel

Zaman /volatile:ms derleyici seçeneği kullanılır — varsayılan dışındaki arm mimarileri hedeflenen — genel diğer nesnelere başvuru sıralamasını Bakımı yanı sıra geçici nesnelere başvurular arasında sıralamasını korumak için ek kod derleyici oluşturur.Özellikle:

  • Geçici bir nesneye (değişken yazma olarak da bilinir) bir yazma yayın anlambilim içeriyor; diğer bir deyişle, geçici bir yönerge sırası nesnesine yazma önce oluşan bir genel veya statik nesnesine bir başvuru geçici, derlenmiş ikili dosya yazma önce ortaya çıkar.

  • Geçici (geçici okuma olarak da bilinir) nesnesi okuma edinme anlambilim içeriyor; Bu geçici derlenmiş ikili düzende okuduktan sonra geçici bellekte yönerge sırası okuma sonra oluşan bir genel veya statik nesnesine bir başvuru ortaya çıkar.

Bu bellek kilitler ve çok iş parçacıklı uygulamalar sürümlerde kullanılmak üzere geçici nesneler sağlar.

[!NOT]

Ne zaman onu dayanır ne zaman sağlanan gelişmiş garanti üzerinde /volatile:ms derleyici seçeneği kullanıldığında, taşınabilir olmayan kodudur.

Ayrıca bkz.

Başvuru

C++ anahtar sözcükler

Const (C++)

Sabit ve değişken işaretçiler