_STATIC_ASSERT
Makro
Derleme zamanında bir ifadeyi değerlendirin ve sonuç olduğunda FALSE
bir hata oluşturun.
Sözdizimi
_STATIC_ASSERT(
booleanExpression
);
Parametreler
booleanExpression
Sıfır olmayan () veya 0FALSE
() olarak değerlendirilen ifade (TRUE
işaretçiler dahil).
Açıklamalar
Bu makro ve _ASSERTE
makrolarına _ASSERT
benzer, ancak çalışma booleanExpression
zamanında değil derleme zamanında değerlendirilir. (0) olarak değerlendirilirse booleanExpression
FALSE
Derleyici Hatası C2466 oluşturulur.
Örnek
Bu örnekte, a int
değerinin sizeof
2 bayttan büyük veya buna eşit olup olmadığını ve a değerinin sizeof
long
1 bayt olup olmadığını denetleriz. Program derlenmez ve derleyici hatası C2466 oluşturur çünkü a long
1 bayttan büyük.
// 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));
}
Gereksinimler
Makro | Gerekli başlık |
---|---|
_STATIC_ASSERT |
<crtdbg.h> |
Ayrıca bkz.
Alfabetik işlev başvurusu
_ASSERT
, _ASSERTE
, _ASSERT_EXPR
makrolar