0

请看下面的代码

#include <iostream>
using namespace std;

    int main (){
        #if true
            int fd = 0;

        #else
            int dd =0;
        #endif
        cout<<fd;
        //cout<<dd;

        system("pause");
        return 0;
    }

在这里,我试图只编译一个块。如果 'if' 编译,那么 'else' 不应该,同样明智。但这不起作用。请帮忙。

4

1 回答 1

3

对于条件编译,代码必须如下所示:

#include <iostream>
using namespace std;

int main (){
    #ifdef Somedef
        int fd = 0;
        cout<<fd;
    #else
        int dd =0;
        cout<<dd;
    #endif
    system("pause");
    return 0;
}

然后在编译代码时为定义提供命令行参数,例如:gcc -DSomedef test.c -o test 以包含代码并删除用于删除代码的命令行定义

注意:您已经为条件编译检查了“#if true”,该语句将始终为真,因此在编译时将包含该部分代码。

于 2013-04-07T06:43:33.833 回答