Sdílet prostřednictvím


Makro _STATIC_ASSERT

Vyhodnocení výrazu v době kompilace a generovat chybu, pokud je výsledek FALSE.

_STATIC_ASSERT(
    booleanExpression
);

Parametry

  • booleanExpression
    Výraz (včetně ukazatelů), který je vyhodnocován na nenulovou (TRUE) nebo 0 (FALSE).

Poznámky

Tato makra se podobá _ASSERT a _ASSERTE makra, s výjimkou, že booleanExpression je vyhodnocena v době kompilace místo za běhu.Pokud booleanExpression vyhodnocen jako FALSE (0) C2466 chyba kompilátoru je generována.

Příklad

V tomto příkladu jsme zkontrolujte zda sizeofint je větší než nebo rovno 2 bajty a zda sizeoflong je 1 bajt.Program nebude zkompilován a bude generovat C2466 chyba kompilátoru protože long je větší než 1 bajt.

// 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));
}

Požadavky

Makro

Požadované záhlaví

_STATIC_ASSERT

<crtdbg.h>

Ekvivalent v rozhraní .NET Framework

System::Diagnostics::Debug:: výrazu

Viz také

Referenční dokumentace

_ASSERT, _ASSERTE makra

Další zdroje

Abecední odkaz funkce