Macro _STATIC_ASSERT
Avaliar uma expressão em tempo de compilação e gerar um erro quando o resultado é FALSE.
_STATIC_ASSERT(
booleanExpression
);
Parâmetros
- booleanExpression
Expressão (inclusive os ponteiros) que é avaliada como diferente de zero (TRUE) ou 0 (FALSE).
Comentários
Esta macro é semelhante a macros _ASSERT e _ASSERTE, exceto que booleanExpression é avaliada em tempo de compilação em vez de em tempo de execução.Se booleanExpression for avaliada como FALSE (0), C2466 de erro do compilador é gerado.
Exemplo
Neste exemplo, verificamos se o sizeof um int é maior que ou igual a 2 bytes e se a sizeof um long é 1 byte.O programa não será compilado e ele irá gerar C2466 de erro do compilador porque um long for maior que 1 byte.
// crt__static_assert.c
#include <crtdbg.h>
#include <stdio.h>
_STATIC_ASSERT(sizeof(int) >= 2);
_STATIC_ASSERT(sizeof(long) == 1); // C2466
int main()
{
printf("I am sure that sizeof(int) will be >= 2: %d\n",
sizeof(int));
printf("I am not so sure that sizeof(long) == 1: %d\n",
sizeof(long));
}
Requisitos
Macro |
Cabeçalho necessário |
---|---|
_STATIC_ASSERT |
<crtdbg.h> |
Equivalência do .NET Framework
System::Diagnostics::Debug:: Assert