不是指针,不能解除引用

时间:2012-03-22 05:40:13

标签: c pointers

我在C中编写代码,其中结构通过引用传递,并在另一个函数中使用

以下是被调用的函数声明:

    float Compute(float input, struct constraints* limits_record, struct constraints* state_record);

其中limits_record和state_records都是声明如下的结构:

    struct constraints
    {
       float lower_limit;
       float upper_limit;
    };

上述函数是从另一个函数(而不是从main)调用的,如下所示:

    autotrim_out=Compute(inp, &limit, &state);

遵循有关计算功能的代码详情:

    float Compute(float input, struct constraints* limits_record, struct constraints* state_record)
     {
        float tmp_lim;
        float tmp_intgr;
        tmp_intgr =  coefficient * (input + state_record->lower_limit) + state_record->upper_limit;
        if (tmp_intgr < limits_record->lower_limit)
           tmp_lim = limits_record->lower_limit ;
        else if(tmp_intgr > limits_record->upper_limit)
           tmp_lim = limits_record->upper_limit;
        else
           tmp_lim = tmp_intgr;

       state_record->upper_limit = tmp_lim;
       state_record->lower_limit = input ;

      return(tmp_lim) ;
    }

在编译上面的代码时,在行

上给出错误“Not a pointer,not de deference”
    tmp_intgr =  coefficient * (input + state_record->lower_limit) + state_record->upper_limit;

有人可以帮我解决这个问题......

提前致谢

1 个答案:

答案 0 :(得分:2)

在你的代码中寻找代码:

#define coefficient

并将其更改为:

#define coefficient .42