Aracılığıyla paylaş


_STATIC_ASSERT Makro

Derleme zamanında bir ifadeyi değerlendirin ve sonuç olduğunda FALSEbir hata oluşturun.

Sözdizimi

_STATIC_ASSERT(
    booleanExpression
);

Parametreler

booleanExpression
Sıfır olmayan () veya 0FALSE () olarak değerlendirilen ifade (TRUEişaretçiler dahil).

Açıklamalar

Bu makro ve _ASSERTE makrolarına _ASSERTbenzer, 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