Declarações
Este tópico se aplica a:
Edição |
Visual Basic |
C# |
C++ |
Desenvolvedores Web |
---|---|---|---|---|
Express |
Somente nativo |
|||
Padrão |
Somente nativo |
|||
PRO e equipe |
Somente nativo |
Legenda de tabela:
Aplica-se |
|
Não é aplicada |
|
Comando ou comandos oculta por padrão. |
Uma demonstrativo de demonstrativo especifica uma condição que você Isenção verdadeiras em algum momento específico em seu programa.Se essa condição não mantém true, a declaração falha, execução do programa for interrompida e o Caixa de diálogo Falha de declaração aparece.
O Visual C++ oferece suporte a instruções de declaração com base nas seguintes construções de:
Declarações de MFC programa MFC.
ATLASSERT para programas que usam ATL.
Declarações de CRT para programas que usam o C em time de execução biblioteca.
O ANSI declaração de função para outros programas de C/C ++.
Você pode usar declarações para:
Detecte erros de lógica.Para obter mais informações, consulte Captura de erros de lógica.
Verificar resultados de uma operação.Para obter mais informações, consulte Fazer a verificação.
Testar as condições de erro que devem ter sido tratadas.Para obter mais informações, consulte Teste de condição de erro.
MFC e itens de biblioteca C em tempo de execução
Quando o depurador pára por causa de uma declaração de biblioteca de time de execução MFC ou C, ele navega até o ponto no arquivo de origem onde a afirmação ocorreu (se a fonte estiver disponível).A declaração exibida no Janela de saída , bem sistema autônomo a Falha de declaração caixa de diálogo.Você pode copiar a mensagem de declaração do Saída janela para uma janela de texto se você deseja salvá-lo para referência futura.The Saída janela pode conter outras mensagens de erro também.Examine essas mensagens com cuidado, pois eles fornecem pistas sobre a causa da falha de asserção.
Com o uso livre de asserções em seu código, você pode capturar vários erros durante o desenvolvimento.Uma mercadoria regra é escrever uma declaração para cada suposição feitas.Se você supor que um argumento não for nulo, por exemplo, usar uma demonstrativo de demonstrativo para verificar essa suposição.
_DEBUG
Declaração instruções compilar somente quando _DEBUG é definida.Quando _DEBUG não estiver definido, o compilador trata declarações sistema autônomo instruções nulas.Portanto, instruções de declaração têm sobrecarga zero em seu programa de lançamento final; você pode usá-los livremente em seu código sem afetar o desempenho de sua versão de lançamento e sem a necessidade de usar #ifdef diretivas.
Efeitos colaterais da utilização de itens
Ao adicionar declarações ao seu código, verifique se que as declarações não tem efeitos colaterais.Por exemplo, considere a seguinte declaração:
ASSERT(nM++ > 0); // Don't do this!
Porque o DECLARAR expressão não será avaliada na versão de lançamento do seu programa, nM vai ter valores diferentes nas versões depurar e Release. No MFC, você pode usar o VERIFIQUE SE macro em vez de DECLARAR.VERIFIQUE SE avalia a expressão, mas não verifica o resultado na versão de lançamento.
Ter um cuidado especial sobre o uso de chamadas de função em instruções de declaração, como avaliar uma função pode ter efeitos colaterais inesperados.
ASSERT ( myFnctn(0)==1 ) // unsafe if myFnctn has side effects
VERIFY ( myFnctn(0)==1 ) // safe
VERIFIQUE SE calls myFnctn nas versões de depurar e de versão, portanto, é aceitável o uso. No entanto, você ainda tem a sobrecarga de uma telefonar de função desnecessários na versão de lançamento.