Compartilhar via


Declarações

This topic applies to:

Edition

Visual Basic

C#

F#

C++

Web Developer

Express

O tópico não é aplicável O tópico não é aplicável O tópico não é aplicável

Native only

O tópico não é aplicável

Pro, Premium e Ultimate

O tópico não é aplicável O tópico não é aplicável O tópico não é aplicável

Native only

O tópico não é aplicável

Uma instrução de declaração especifica uma condição que você espera verdadeiras em algum ponto específico no seu programa. Se essa condição não verdadeiras, a declaração falhará, a execução do programa for interrompida e o caixa de diálogo Assertion Failed aparece.

Visual C++ oferece suporte a instruções de declaração, com base nos seguintes construções de:

Você pode usar as declarações para:

MFC e declarações de biblioteca C Run-Time.

Quando o depurador pára por causa de uma declaração de biblioteca de tempo 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 mensagem de declaração aparece no a janela de saída , bem como o Assertion Failed caixa de diálogo. Você pode copiar a mensagem de declaração da saída janela para uma janela de texto, se você deseja salvá-lo para referência futura. O saída janela pode conter outras mensagens de erro bem. Examine essas mensagens com cuidado, pois eles fornecem pistas para a causa da falha de declaração.

Através do uso livre de asserções em seu código, você pode capturar vários erros durante o desenvolvimento. Uma boa regra é escrever uma asserção para cada pressuposição que você fizer. Se você assumir um argumento não for nulo, por exemplo, use uma instrução de declaração para verificar essa suposição.

_ DEBUG

Afirmação instruções compilar somente quando _ Debug está definido. Quando _ Debug não é definido, o compilador trata asserções como instruções nulas. Portanto, instruções de declaração tem zero sobrecarga no seu programa de lançamento final; Você pode usá-los livremente em seu código sem afetar o desempenho da sua versão de lançamento e sem ter que usar #ifdef diretivas.

Efeitos colaterais do uso de declarações

Quando você adiciona asserções em seu código, certifique-se das que declarações não tem efeitos colaterais. Por exemplo, considere a seguinte declaração:

ASSERT(nM++ > 0); // Don't do this!

Porque o ASSERT expressão não é avaliada na versão de lançamento do seu programa, nM terão valores diferentes nas versões Debug e Release. No MFC, você pode usar o VERIFY macro em vez de ASSERT. Verificar avalia a expressão, mas não verifica o resultado na versão de lançamento.

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

Verificar chamadas myFnctn nas versões de depuração e de lançamento, portanto é aceitável usar. No entanto, você ainda tem a sobrecarga de uma chamada de função desnecessários na versão de lançamento.

Consulte também

Referência

Asserção no código gerenciado

Conceitos

Segurança do Depurador

Outros recursos

Depuração de código nativo