请查看以下代码
#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'不应该像明智的那样。但这不起作用。请帮忙。
答案 0 :(得分: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包含代码并删除命令行define以删除代码
注意:您已检查“#if true”以进行条件编译,该语句将始终为true,因此在编译时将包含该部分代码。