ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


Tips >   

アサーションを出力 

更新 : 2010/05/11

 



解説:
assert マクロは、ANSI C の標準仕様に含まれているマクロです。
プログラミング中にアサーションを記述することで、効果的にバグを発見して、修正できます。実行時はコメント行にできるので、保守も容易です。
簡単な論理エラーを発見する道具として、役立ててください。

使用例:
以下の例では、Edit に適当な数字を入力してエラーを出させています。

コンポーネントは、 Edit と Button を適当に置いてください。

コーディングでは、まず Edit に入力された数字を数値に変換しています。次にその数値を 5 倍して、元の数値と等しいかどうか調べています。

エラーは次のように表示されます。
    Assertion failed: test, file filename, line linenum
メッセージ内の filename と linenum は assert マクロが存在するソースファイル名と行番号を表します。

#define NDEBUG     // この行があると実行時 assert はコメント行になります
#include <assert.h> // 追加

//-------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    // 適当な数字を代入
    int i = StrToInt(Edit1->Text);

    // カッコの条件を満たさなければエラーを出力する
    assert(i == i * 5); // i = 0 なら正常

   //異常終了する
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.