次の方法で共有


_STATIC_ASSERT マクロ

結果がの場合 FALSE 式をコンパイル時に評価されエラーが発生します。

_STATIC_ASSERT(
    booleanExpression
);

パラメーター

  • booleanExpression
    以外 (TRUE) または 0 に評価される式 (など)FALSE ポインター ()。

解説

このマクロは _ASSERT と _ASSERTE マクロ に似ていますがbooleanExpression は実行時ではなくコンパイル時に評価されます。booleanExpression が FALSE (0) と評価されるとコンパイラ エラー C2466 が生成されます。

使用例

この例ではsizeof が int より大きいか等しいかどうかを確認し2 バイト単位に sizeof が long 1 バイトであるかどうか。プログラムはコンパイルされずlong が 1 バイトを超えるため コンパイラ エラー C2466 を生成します。

// 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:: デバッグ :: Assert

参照

関連項目

_ASSERT マクロ、_ASSERTE マクロ

その他の技術情報

関数リファレンス (アルファベット順)