de if-Block 是什么意思

What does de if-Block mean

if 块中的加法是什么意思? if-Question 比较什么?

我已经用整数尝试了代码,但它告诉我 if 块每次都是 true

if (f(a,751) + f(b, -751) -f(c, a)) 

.

在显示的代码中,对整个表达式 f(a,751) + f(b, -751) - f(c, a) 求值,如果它将 return 一个可转换为 bool 的值(例如,整数),则如果值为转换为 true。对于整数,这意味着该值是否为非 0。

缺少 f 函数的定义我无法进一步详细说明。

加法就是加法。假设 f() returns 是一个整数,if 语句只是评估一个整数条件。在这种情况下,任何非零数字都将 return 为真。

What does the addition in the if block mean?

它的意思与其他任何地方完全相同,取决​​于表达式 f(a,751) 等的类型。所以你的 if 语句在逻辑上等于:

auto tmp = f(a,751) + f(b, -751) -f(c, a);
if( tmp ) ... 

这样你会更容易理解 +if

里面没有特殊含义

What does the if-Question compare?

C++ 有特殊的规则,如何将某些类型转换为 if 期望的类型 bool。例如,对于 int,任何非零值都会转换为 true,否则会转换为 false。不知道是什么f() returns 没法多说

你应该明白,例如a < b并没有什么特别之处,它只是returns bool的一个表达。 if 只是评估括号内的内容并尝试将其转换为 bool。如果可以就使用它,如果不能你会得到编译错误。