Compartilhar via


/volatile (Interpretação da palavra-chave volatile)

Especifica como a palavra-chave volatile deve ser interpretada.

/volatile:{iso|ms}

Arguments

  • /volatile:iso
    Seleciona a semântica estrita de volatile conforme definido pela linguagem ISO C++ padrão. A semântica de aquisição/liberação não é garantida em acessos voláteis. Se o compilador direciona o ARM, essa é a interpretação padrão do volatile.

  • /volatile:ms
    Seleciona a semântica estendida de volatile da Microsoft, o que adiciona garantias de solicitação de de memória além da linguagem C++ padrão ISO. A semântica de aquisição/liberação é garantida em acessos voláteis. No entanto, essa opção também força o compilador a gerar as barreiras de memória de hardware, que podem adicionar uma sobrecarga significativa ao BRAÇO e a outras arquiteturas fracas de classificação de memória. Se o compilador direciona qualquer plataforma exceto o ARM, essa é uma interpretação padrão do volatile.

Comentários

É altamente recomendável que você use /volatile:iso junto com primitivos explícitos de sincronização e os intrínsecos de compilador quando estiver tratando a memória que é compartilhado entre threads. Para obter mais informações, consulte volatile (C++).

Se você portar o código existente ou alterar essa opção no meio de um projeto, poderá ser útil habilitar o aviso C4746 para identificar locais de código afetados pela diferença na semântica.

Não há equivalente de #pragma para controlar esta opção.

Para definir a opção /volatile do compilador no Visual Studio

  1. Abra a caixa de diálogo Páginas de Propriedade para o projeto. Para obter mais informações, consulte Como abrir páginas de propriedade do projeto.

  2. Selecione a pasta C/C++.

  3. Selecione a página de propriedades Linha de Comando .

  4. Na caixa Opções adicionais, adicione /volatile:iso ou /volatile:ms.

Consulte também

Referência

volatile (C++)

Opções do compilador

Definindo opções do compilador