繁体   English   中英

C中* f和(* f)之间的区别?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM