C 变量的负号而不赋值它



我正在查看一些C代码,下面的例子让我感到困惑。

theta = PI*0.5;
if(xn< 0.0 ) -theta;   // ???

当我编译时,编译器说表达式结果未使用,这就是我认为正在发生的事情:带有负号的theta没有分配给任何东西。

源代码中有几个这样的部分,我想知道我是否遗漏了什么,因为我不是很精通 C。

另一方面,代码由政府提供,并且有一个部分检查someVariable是否someVariable < 0.0是正浮点数的常数。所以我也认为这只是懒惰的程序员的懒惰。这是怎么回事?

是的,我同意你的看法,这毫无意义。

看看"theta"的下一次使用可能会很有趣,以检查它是否是一个错误。例如:如果"theta"仅用作"cos(theta)",那么这种懒惰的写作是无用的,并且像注释一样,因为"cos()"是一个偶数函数。如果使用奇数函数,则情况会有所不同。

我的意思是,cos(x)=cos(-x) 确实是sin(x)!=sin(-x) ..此代码在第一种情况下是正确的,但在第二种情况下是错误的。

最新更新