[英]Difference between *f and (*f) in C?
CppCheck(v1.72)说,有使用时的差异(*f)
或只是*f
。 这种情况
void test(float *f)
{
float a = 0.0f;
if(*f>a)
{
(*f) += 0.01f;
if(*f<a) *f=a;
}
}
cppCheck说:“嵌套的'if'块中的相反条件导致死代码块,其中
void test(float *f)
{
float a = 0.0f;
if(*f>a)
{
*f += 0.01f;
if(*f<a) *f=a;
}
}
使cppCheck开心。 到底有什么区别?
没有区别 理想情况下,在两种情况下cppcheck都应该警告您,因为您的代码不合逻辑。
但是,cppcheck并非万无一失。 不要假设cppcheck没有显示任何问题。 它只是另一个有用的工具,可以帮助发现可能无法检测到的错误代码。
感谢您在stackoverflow上报告此问题。 我已经在cppcheck的错误跟踪器上创建了有关此问题的票证。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.