CppCheck (v1.72) говорит, что существует разница при использовании (*f)
или только *f
. Этого случайРазница между * f и (* f) в C?
void test(float *f)
{
float a = 0.0f;
if(*f>a)
{
(*f) += 0.01f;
if(*f<a) *f=a;
}
}
cppCheck говорит «противоположные условия в вложенной„если“блоки приводят к мертвому блоку кода, где, как
void test(float *f)
{
float a = 0.0f;
if(*f>a)
{
*f += 0.01f;
if(*f<a) *f=a;
}
}
делает cppCheck счастливым. Что именно разница?
Без разницы. Что-нибудь еще? – haccks
да, почему cppcheck имеет значение здесь, когда его нет? – floquet22
Потому что в первом 'if' вы спросили' * f> a' и во вложенном (втором) 'if' вы спросили об обратном - Вероятно, CppCheck не может видеть, что' * f' был изменен – ColdSteel