FreeBASIC マニュアルのトップに戻る

FreeBASIC TutConditionalCompilation

目次→教本→いっしょに学ぼうConditional Compilation And You←オリジナル・サイト

条件付きコンパイル 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る


条件付きコンパイルは、プログラミングの部分の1つで、世界中のプログラマーの知識バンクのほこりまみれの隅にあったものです。それでも、あらゆる言語に対する最も独創的な追加機能の1つです。
これは、C プログラマのために予約されているものですが、freeBASIC の新しいプリ・プロセッサの力で、あなたは今、あなたのプログラムを助けるために、条件付きコンパイルを使うことができます。

プリ・プロセッサは、条件付きコンパイルを使って、コードを生成する方法を、柔軟に変えられるようにします。
次の状況を想定してみて下さい:
プログラムのコードをデバッグするときには、いくつかの変数を出力するために、何らかの付加的なコードを加えます。しかし、最終版では、付加的なコードを取り除きます。
コードは、下のようになるでしょう:
    #define DEBUG

    #ifdef DEBUG
        Print "Debug Value"
    #endif 'DEBUG


注意 #endif の後にコメントは必要ありません。ただ、コメントを置くと、分かりやすくなります。

基本的に、上のコードは、DEBUG が定義されているかどうかを確認するチェックをしています。DEBUG を持っていれば、#ifdef...#endif の間のコードが実行されます。
これは、たわいないことに見えるかもしれませんが、これを使うと驚くべきことができます。
あなたのプログラムの先頭で、一行 (#define DEBUG) を取り除くだけで、あなたが加えた、すべての'デバッグコード'は、コンパイラに送られません -- プリ・プロセッサはそれを取り除きます。最終の実行可能ファイルの肥大化を減少させます。

    'デバッグを on にします
    #define DEBUG

    'デバッグを off にします
    #undef DEBUG


#undef 指示は、何か (この場合は DEBUG) を、'非定義' にする方法です。
#undef 指示は、厳密には必要ありません。('#define DEBUG' の行をコメント・アウトするだけで十分です)。しかし、#undef 指示を入れると、コードを分かりやすくなるし、他の用途もあります:

    #ifndef DEBUG
        Print "Production Version"
    #endif 'DEBUG


最も役に立つ例というわけではありませんが、上は別の #ifndef 指示の使い方を示しています。
この指示は、シンボルが定義されないとき、コードをコンパイルします。

普通のプログラミング言語のように、else の変形 #else を使うと、条件文の意味を、逆にすることができます:
    #ifdef DEBUG
        Print "Test Version"
    #else
        Print "Production Version"
    #endif 'DEBUG 


もちろん、これには、多くの使い道があります。
コードのデバッグだけに、これを使うと思いますか?
あなたは、実際に、新しいコードの効果や、単に TESTCODE のような名前を定義して、条件付きコンパイルのためのコードを包含するプリプロセッサー指令を使用する、いくつかのテスト・ルーチンを、チェックすることができます:
    #define TESTCODE

    #ifdef TESTCODE
        BulletRoutine ()
        TestFireRoutine ()
    #endif 


このチュートリアルで紹介できる範囲は限られたものですが、この方法は、専門家によって使われています。
プログラムを作ることで、人生が楽しくなります。
私は私自身のコードで、この方法を使いしました。
このコードが動いていることを確認するために、ここでソースを見てください。∞。

Avinash 'aetherFox' Vora
AetherFox
avinashvora [at] gmail [dot] com.←メイル・アドレスは、スパム・エンジンに取得されにくくするために、改変しています。
http://petesqbsite.com/sections/express/issue9/

いっしょに学ぼう に戻る

最後に sancho3 がレビュー 2018年2月7日

←リンク元に戻る プログラム開発関連に戻る
ページ歴史:2018-02-07 16:11:27
日本語翻訳:WATANABE Makoto、原文著作者:AetherFox

ホームページのトップに戻る

表示-非営利-継承