_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