C言語学習ポータル(無料版) 学習コンテンツ 関数リファレンス assert

🔧 ユーティリティ ・ assert.h ・ C89

assert の使い方

C言語 標準ライブラリ関数リファレンス(無料公開)

書式

void assert(scalar expression);

どんな関数か

式が偽の場合にプログラムを異常終了させ、ファイル名・行番号・式の内容を表示するデバッグ用マクロ。NDEBUGマクロを定義してコンパイルすると全てのassertは無効化される仕様。 デバッグビルドでは前提条件の破れを即座に検出でき、本番ビルドではNDEBUGでオーバーヘッドを消せる。

使用例

#include <assert.h>
int main(void) {
    int x = 5;
    assert(x > 0);
    return 0;
}

つまずきやすい注意点

⚠️ NDEBUGを定義したリリースビルドでは中の式自体が評価されなくなるため、assert(f())のように副作用のある呼び出しを書いてはいけない。

アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ

assert と一緒に使う関数

abortプログラムを異常終了させる。atexitで登録した関数は呼び出されず、シグナルSIGABRTを発生させて即座に終了する。…

同じ分類(ユーティリティ)の関数

offsetof va_arg va_end va_start

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る