/volatile (interprétation de mot clé volatile)

Spécifie la façon dont la mot clé volatile doit être interprétée.

Syntaxe

/volatile :{iso|ms}

Arguments

/volatile :iso
Sélectionne une sémantique stricte volatile telle que définie par le langage C++ standard ISO. La sémantique d’acquisition/mise en production n’est pas garantie sur les accès volatiles. Si le compilateur cible ARM (sauf ARM64EC), il s’agit de l’interprétation par défaut de volatile.

/volatile :ms
Sélectionne la sémantique étendue volatile Microsoft, qui ajoute des garanties de classement de la mémoire au-delà du langage C++ standard ISO. La sémantique d’acquisition/mise en production est garantie sur les accès volatiles. Toutefois, cette option force également le compilateur à générer des barrières de mémoire matérielle, ce qui peut ajouter une surcharge significative sur ARM et d’autres architectures d’ordre de mémoire faibles. Si le compilateur cible ARM64EC ou toute plateforme non ARM, il s’agit de l’interprétation par défaut de volatile.

Notes

Nous vous recommandons vivement d’utiliser /volatile :iso avec les primitives de synchronisation explicites et les intrinsèques du compilateur lorsque vous traitez de la mémoire partagée entre les threads. Pour plus d’informations, consultez volatile.

Si vous portez du code existant ou modifiez cette option au milieu d’un projet, il peut être utile d’activer l’avertissement C4746 pour identifier les emplacements de code affectés par la différence de sémantique.

Il n’existe aucun #pragma équivalent pour contrôler cette option.

Pour définir l’option du compilateur /volatile dans Visual Studio

  1. Ouvrez la boîte de dialogue Pages de propriétés du projet. Pour plus d’informations, consultez Définir le compilateur C++ et les propriétés de build dans Visual Studio.

  2. Sélectionnez la page de propriétés Propriétés de configuration>C/C++>Ligne de commande.

  3. Dans la zone Options supplémentaires , ajoutez /volatile :iso ou /volatile :ms , puis choisissez OK ou Appliquer pour enregistrer vos modifications.

Voir aussi

volatile
Options du compilateur MSVC
Syntaxe de la ligne de commande du compilateur MSVC