макрос _STATIC_ASSERT

Вычисление выражений во время компиляции и сформируйте ошибку, если результат FALSE.

_STATIC_ASSERT(
    booleanExpression
);

Параметры

  • booleanExpression
    Выражения указателей (включая), результатом которого является ненулевое значение (TRUE(или 0)FALSE).

Заметки

Этот макрос напоминает макросы _ASSERT и _ASSERTEза одним исключением: booleanExpression оценивает во время компиляции, а не на среды выполнения.If booleanExpression равно FALSE (0) Ошибка компилятора C2466 формирует.

Пример

В этом примере проверим ли sizeofint больше или равно 2 байта и ли sizeof a long 1 байт.Программа не будет компилироваться и она создаст Ошибка компилятора C2466 поскольку a long превышает 1 байт.

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

Требования

Макрос

Обязательный заголовок

_STATIC_ASSERT

<crtdbg.h>

Эквивалент в .NET Framework

System:: Устранение неполадок:: отладка:: Assert

См. также

Ссылки

_ASSERT _ASSERTE - макрос

Другие ресурсы

Алфавитная справочник по функциям