共用方式為


_STATIC_ASSERT 巨集

評估運算式在編譯時期,並且產生錯誤時就會產生FALSE。

_STATIC_ASSERT(
    booleanExpression
);

參數

  • booleanExpression
    (包括指標) 的運算式會評估結果為非零值 (TRUE) 或 0 (FALSE)。

備註

此巨集類似 _assert 狀況和 _asserte 的判斷提示巨集, booleanExpression在編譯時間,而不是在執行階段評估。 如果booleanExpression會評估為FALSE (0), 編譯器錯誤 C2466 ,就會產生。

範例

在這個範例中,我們會檢查是否sizeofint大於或等於 2 個位元組,是否sizeoflong是 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 狀況,_asserte 的判斷提示巨集

其他資源

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