0

私はこのようなコードを持っています:

#ifdef DEBUG
{
    unsigned int i;
    GLint names;
    GLuint *ptr;
    printf("hits = %d\n", hits);
    ptr = (GLuint *) selectBuffer;
    for (i = 0; i < hits; i++) {  // for each hit  
        int j;
        names = *ptr;
        printf("number of names for hit = %d\n", *ptr);
        ptr++;
        printf("  z1 is %g;", (float) *ptr / 0xffffffff);
        ptr++;
        printf("  z2 is %g\n", (float) *ptr / 0xffffffff);
        ptr++;
        printf(" the name is ");
        for (j = 0; j < names; j++) {  // For each name. 
            printf("%d ", *ptr);
            ptr++;
        }
        printf("\n");

    }
}
#endif

これらのコードがどこに書き込まれるのかわかりません。それはヘッダーファイルにありますか?これらのコードはmain()関数内にのみありますがprintf()、このコードのステートメントは印刷されないため、別の場所に印刷されます。また、この部分を削除しようとするとmain()、プログラムは実行されません。

4

1 に答える 1

2

#ifdefopengl に固有のものではありません。これは、指定されたシンボル ( ) がコンパイラによって定義されている間#ifdefと定義されているときにのみコードをコンパイルするプリプロセッサ ディレクティブです。#endifDEBUG

あなたが投稿したコード ブロックは、DEBUG ビルド用にコードをコンパイル (および実行) したいだけの人によって書かれた可能性があります。(最終リリース/生産ではありません)。

于 2013-06-04T01:08:02.813 に答える