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

#ifdef不是特定于opengl的。它是一个预处理器指令,仅在编译器定义指定符号 ( ) 之间#ifdef和时编译代码。#endifDEBUG

您发布的代码块可能是由只希望为 DEBUG 构建编译(和运行)代码的人编写的。(不是最终版本/生产)。

于 2013-06-04T01:08:02.813 回答