Partilhar via


/ RTC (verificações em time de execução erro)

Usado para ativar e desabilitar o em time de execução erro verifica o recurso, juntamente com o runtime_checks pragma.

/RTC1
/RTCc
/RTCs
/RTCu

Argumentos

  • 1
    Equivalente a /RTCsu.

  • c
    Relatórios quando um valor é atribuído a um tipo de dados menor e resultados em uma perda de dados.Por exemplo, se um valor de tipo short 0x101 atribuído a uma variável do tipo char.

    Esta opção relata situações em que você pretende truncar, por exemplo, se você desejar que sistema autônomo primeiros oito bits de um int retornado sistema autônomo um char. Porque /RTCc faz com que um em time de execução erro se houver informações perdidas de atribuição, você pode mascarar desativar sistema autônomo informações necessárias para evitar um em time de execução erro de /RTCc. Por exemplo:

    #include <crtdbg.h>
    
    char get8bits(int value, int position) {
       _ASSERT(position < 32);
       return (char)(value >> position);
       // Try the following line instead:
       // return (char)((value >> position) && 0xff);
    }
    
    int main() {
       get8bits(12341235,3);
    }
    
  • s
    Permite empilhar verificação de erros de time de execução do quadro, sistema autônomo segue:

    • Inicialização de variáveis locais para um valor diferente de zero.Isso ajuda a identificar bugs que não aparecem quando executado no modo de depurar.Há uma chance maior variáveis pilha ainda será zero em uma compilação de depurar em comparação comparada uma versão de compilação devido das otimizações de compilador das variáveis de pilha em uma versão de compilação.Depois que um programa tiver usado uma área de sua pilha, ele nunca é redefinido como 0 pelo compilador.Portanto, variáveis de pilha subseqüente e não inicializado que usem a mesma área de pilha podem retornar valores sobrando do uso anterior desta memória de pilha.

    • Detecção de estouros e falhas de variáveis locais, sistema autônomo matrizes./RTCs não detectar saturações ao acessar a memória que resultados do compilador preenchimento dentro de uma estrutura. preenchimento pode ocorrer por meio de alinhar (C++), /Zp (struct membro alinhamento), ou pacote, ou se você solicitar elementos de estrutura de tal maneira que exigem o compilador a adicionar preenchimento.

    • Verificação de ponteiro de pilha, que detecta a corrupção do ponteiro de pilha.Corrupção do ponteiro de pilha pode ser causada por uma incompatibilidade de convenção de chamada.Por exemplo, usando um ponteiro de função, você chamar uma função em uma DLL é exportada sistema autônomo __stdcall mas você declara o ponteiro para a função __cdecl.

  • u
    Relatórios quando uma variável é usada sem ter sido inicializado.Por exemplo, uma instrução que gera aviso do compilador (nível 4) C4701 também pode gerar um em time de execução erro em /RTCu. Qualquer instrução que gera aviso do compilador (nível 1 e nível 4) C4700 irá gerar um em time de execução erro em /RTCu.

    No entanto, considere o fragmento de código a seguir:

    int a, *b, c;
    if ( 1 )
    b = &a;
    c = a;  // No run-time error with /RTCu
    

    Se uma variável pode ter sido inicializada, ela será não relatada em time de execução por /RTCu. Por exemplo, após uma variável com alias através de um ponteiro, o compilador não irá controlar a variável e relatar usos não inicializados.Na verdade, você pode inicializar uma variável, tirando seu endereço.A & operador funciona como um operador de atribuição nessa situação.

Comentários

em time de execução verificações de erro são uma maneira para que você encontrar problemas no seu código em execução; para obter mais informações, consulte Como: Usar Nativo verificações em tempo de execução.

Se você compilar seu programa na linha de comando usando qualquer um do /RTC Opções do compilador, qualquer pragma otimizar instruções de seu código falhará silenciosamente. Isso ocorre porque as verificações de erro em time de execução inválido são válidas em uma criação de versão (otimizado).

Você deve usar /RTC para versões de desenvolvimento; /RTC não deve ser usado para uma compilação para venda. /RTC não pode ser usado com () otimizações de compilador/O opções (otimizar código)). Uma imagem do programa construída com /RTC será um pouco maior e um pouco mais lenta do que uma imagem criada com /Od (até 5 % mais lento do que um /Od compilação).

A diretiva de pré-processador __MSVC_RUNTIME_CHECKS será definida quando você usar qualquer /RTC opção ou /GZ.

Para conjunto esta opção do compilador no ambiente de desenvolvimento do Visual Studio

  1. em aberto propriedade Páginas caixa de diálogo.Para obter detalhes, consulte:Como: Abrir o Projeto Propriedade Páginas.

  2. clicar no C/C++ pasta.

  3. clicar no Geração de código página de propriedades.

  4. Modificar uma ou ambas as propriedades a seguir: Verificações de tempo de execução básico or Verificação de tipo menor.

Para conjunto esta opção do compilador por meio de programação

Anotações Developer Dispositivo Inteligente

Para compiladores do dispositivo, o recurso RTC é suportado apenas no x86 e não é exposto sistema autônomo uma configuração de propriedade para projetos de dispositivo do Visual C++ no IDE do Visual Studio.No entanto, se o seu objetivo for x86, essa opção pode ser definida no IDE no Opções adicionais painel do Linha de comando do C/C ++ página de propriedades.

Consulte também

Tarefas

Exemplo RTC: Verificações de erro de tempo de execução

Referência

Opções do compilador

Opções de compilador configuração