我在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;
有人可以帮我解决这个问题......
提前致谢
答案 0 :(得分:2)
在你的代码中寻找代码:
#define coefficient
并将其更改为:
#define coefficient .42