编译后忽略部分代码

时间:2015-04-27 10:31:02

标签: c function gcc compilation

我的代码看起来像这样

while(!eof)
{
   if(A)
     doSomething;
   if(B)
     doSomething;
}

A和B是来自命令行的参数。可能还有更多参数。我有Bools的结构,其中包含所有可能的参数,并且对于每个参数,它确定它是否存在。

我可以让编译器不读取代码的某些部分吗?

我的意思是,在这段代码中,他将检查每次迭代是否存在B.我想要实现的是他只会检查一次

 if(B)
    doSomething;

我希望这只是为了优化我的程序,我需要在一个循环中同时拥有两个if。

1 个答案:

答案 0 :(得分:3)

坦率地说,Ignoring part of code after compilation毫无意义。代码已经编译完毕。然而。您可以使用条件语句跳过代码的某些部分的执行,例如ifelse-if等。

FWIW,"命令行参数"在运行时提供并考虑。你无法在编译时的基础上决定(条件编译)。

但是,如果需要,您可以随时查看通过命令行提供的参数数量argc),并根据该行动采取行动。

或者,如果您想要conditional compilation,请阅读有关#ifdef / #ifndef的内容可能有所帮助。