Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C中*f和(*f)之间的差异?_C_Dereference_Brackets_Dead Code_Cppcheck - Fatal编程技术网

C中*f和(*f)之间的差异?

C中*f和(*f)之间的差异?,c,dereference,brackets,dead-code,cppcheck,C,Dereference,Brackets,Dead Code,Cppcheck,CppCheck(v1.72)说,使用(*f)或仅使用*f时会有不同。这件事的真相 void test(float *f) { float a = 0.0f; if(*f>a) { (*f) += 0.01f; if(*f<a) *f=a; } } 无效测试(浮动*f) { 浮球a=0.0f; 如果(*f>a) { (*f)+=0.01f; 如果(*f没有区别。理想情况下,cppcheck应该在这两种情况下警告您,因为

CppCheck(v1.72)说,使用
(*f)
或仅使用
*f
时会有不同。这件事的真相

void test(float *f)
{
    float a = 0.0f;
    if(*f>a)
    {
        (*f) += 0.01f;
        if(*f<a) *f=a;
    }
}
无效测试(浮动*f)
{
浮球a=0.0f;
如果(*f>a)
{
(*f)+=0.01f;

如果(*f没有区别。理想情况下,cppcheck应该在这两种情况下警告您,因为您的代码不符合逻辑


然而,cppcheck并不是绝对正确的。不要认为如果cppcheck没有显示任何问题,就没有任何问题。它只是另一个有用的工具,可以帮助发现可能未被发现的错误代码。

没有区别。理想情况下,cppcheck应该在这两种情况下都向您发出警告,因为您的代码不符合逻辑


然而,cppcheck并不是绝对正确的。不要认为如果cppcheck没有显示任何问题,就没有任何问题。它只是另一个有用的工具,可以帮助发现可能未被发现的错误代码。

感谢您在stackoverflow上报告此问题。我已经在cppcheck上创建了一个关于此问题的通知单。

感谢您报告此问题s在stackoverflow上的问题。我已经在cppcheck上创建了一个关于这个问题的票证。

没有区别。还有什么吗?是的,为什么cppcheck在这里没有区别?因为在第一个
if
中,你问了
*f>a
和嵌套(第二个)
if
你问了相反的问题——可能CppCheck看不到
*f
被修改了没有区别。还有什么吗?是的,为什么CppCheck在没有修改的情况下会在这里产生区别?因为在第一个
if
中你问了
*f>a
和嵌套(第二个)
如果
你问了相反的问题——可能CppCheck看不到
*f
被修改了
void test(float *f)
{
    float a = 0.0f;
    if(*f>a)
    {
        *f += 0.01f;
        if(*f<a) *f=a;
    }
}