макрос _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