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

CBアプリ工房


Tips >   

プリプロセッサ変数 

更新 : 2010/09/12

 


解説:
実行時、エラーが出た行を特定したいとき、皆さんはどのように調べていますか?
いろいろ手立てはあると思いますが、今回はプリプロセッサ変数を使ってみます。

プリプロセッサ変数は、プリプロセッサによって任意に定義、置換されています。
その中から、今回はエラーの出た行を特定するプリプロセッサ変数 __LINE__ を使ってみます。

ちょっと寄り道
プリプロセッサは、コンパイルの前に前処理を行なうプログラムのことです。
プリプロセッサ変数がどのように置換されるのか、詳細はインターネットなどで調べてみてください。

使用例:
今回の例は、コーディングからエラーの出る行を特定します。
エラーを発生させるため、実在しないファイルを開いています。

コンポーネントは、Label を適当に配置するだけです。

流れとしては、fopen で実在しないファイルを開きます。エラーが出ますので、用意したプリプロセッサ変数 __LINE__ でエラー行を特定します。
結果は Label1 に表示しています。

他のプリプロセッサ変数も試してみてください。

//-------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    FILE *fp;

    int line = __LINE__ + 1;
    fp = fopen("test.txt", "r");// 18 行

    if (fp == NULL) {
        char buf[128];
        sprintf(buf, "%d 行目でエラー発生\n", line);
        Label1->Caption = buf;
        return;
    }

    fclose(fp);
}
//-------------------------------------------------------------------



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