/volatile (interprétation de mot clé volatile)
Spécifie la façon dont le mot clé volatile doit être interprété.
/volatile:{iso|ms}
Arguments
/volatile:iso
Sélectionne une sémantique volatile stricte, telle qu'elle est définie par le langage C++ de la norme ISO. Les sémantiques d'acquisition/libération ne sont pas garanties sur les accès volatiles. Si le compilateur cible ARM, il s'agit de l'interprétation par défaut de volatile./volatile:ms
Sélectionne une sémantique volatile étendue Microsoft, qui ajoute des garanties en matière d'ordonnancement en mémoire, par rapport au langage C++ de la norme ISO. Les sémantiques d'acquisition/libération sont garanties 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 charge mémoire significative sur ARM et d'autres architectures d'ordonnancement de mémoire faibles. Si le compilateur cible une plateforme autre qu'ARM, il 'agit d'une interprétation par défaut de volatile.
Notes
Nous vous recommandons fortement d'utiliser /volatile:iso avec les primitives explicites de synchronisation et les intrinsèques du compilateur lorsque vous utilisez la mémoire partagée par les threads. Pour plus d'informations, consultez volatile (C++).
Si vous déplacez le 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
Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d'informations, consultez Comment : ouvrir les pages de propriétés d'un projet.
Sélectionnez le dossier C/C++.
Sélectionnez la page de propriétés Ligne de commande.
Dans la zone Options supplémentaires, ajoutez /volatile:iso ou /volatile:ms.