Udostępnij za pośrednictwem


Makro _STATIC_ASSERT

Ocenia wyrażenia w czasie kompilacji i generuje błąd, gdy wynik jest FALSE.

_STATIC_ASSERT(
    booleanExpression
);

Parametry

  • booleanExpression
    Wyrażenie (w tym wskaźników), którego wartością niezerową do (TRUE) lub 0 (FALSE).

Uwagi

To makro jest podobna do makra _ASSERT i _ASSERTE, z wyjątkiem, że booleanExpression jest oceniany w czasie kompilacji, a nie w czasie wykonywania.Jeśli booleanExpression wynikiem FALSE (0), C2466 błąd kompilatora jest generowany.

Przykład

W tym przykładzie będziemy sprawdzać czy sizeofint jest większa niż lub równa 2 bajty i czy sizeoflong jest 1 bajt.Program nie zostanie skompilowany i generuje C2466 błąd kompilatora ponieważ long jest większy niż 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));
}

Wymagania

Makro

Wymaganego nagłówka

_STATIC_ASSERT

<crtdbg.h>

Odpowiednik w programie .NET Framework

System::Diagnostics::Debug:: potwierdzenia

Zobacz też

Informacje

_ASSERT, _ASSERTE makr

Inne zasoby

Alfabetyczne odniesienie funkcji