共用方式為


_STATIC_ASSERT 巨集

當結果為 FALSE時,請評估運算式在編譯時期並產生錯誤。

_STATIC_ASSERT(
    booleanExpression
);

參數

  • booleanExpression
    運算式 (包括指標) 來評估為非零(TRUE) 或 0 (FALSE)。

備註

這個巨集類似 _ASSERT 和 _ASSERTE 巨集,不過, booleanExpression 會在編譯時期而非執行階段。 如果為 FALSE (0),以 編譯器錯誤 C2466 方式將指定的 booleanExpression 評估產生。

範例

在此範例中,要檢查 sizeof int 是否大於或等於 2 個位元組,而且 sizeof long 是否為 1 位元組。 程式不會編譯,並產生 編譯器錯誤 C2466 ,因為 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::Diagnostics::Debug::Assert

請參閱

參考

_ASSERT、_ASSERTE 巨集

其他資源

CRT 依字母順序排列的函式參考