0 c
我试图在一系列绕很多次循环的计算中尽可能多地节省时间.计算有两种情况,一个变量S = 1,当它不等于1.变量在代码的最开头S设置为常量#define.
所以,现在,我在进行适当的计算之前if检查了它的值S.如果我使用它#if,我会获得任何类型的性能提升,并让预处理器挑选出将提前使用的代码部分,因为S已经可用了吗?我没有看到任何增长,但我被告知这绝对是要走的路.
我仍然觉得在实际代码中使用预处理器代码很奇怪,但是如果实际上它会有所帮助,那么我对它没有任何问题.#if在这种情况下使用是否有益?
如果你有一个没有副作用的常量表达式if,我希望合理的编译器能够生成不需要计算的代码.所以我希望没有区别.您可以检查编译器的汇编输出以确认这一点.
我能想到的唯一可以使用的#if情况是,如果某个代码块对于某个配置根本没有意义(或者不会编译).我同意对其他事情看起来很奇怪.另一方面,拥有一个if始终为true或始终为false 的语句对我来说也有点奇怪.然而,这是一个主观的呼吁.