_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:: 判斷提示