上师的问题。我正在摸索如何从函数中删除局部变量“搜索”。一般来说,函数的任务很简单,如果你发现变量'ForNext->FOR[i].var'等于输入变量var,那么我们重新加载参数。如果没有找到,那么我们在下一个地址加载结构数组单元格。
这是代码:
void pushForNext( _FORNEXT *ForNext, uint32_t var, uint32_t begin, float step, float to)
{
if(ForNext->size < MaxQuantityForNext){
uint32_t i = 0;
uint8_t Search = 0; // хочу убрать
for(i = 0; i < ForNext->size; i++){
if(ForNext->FOR[i].var == var)
{
ForNext->FOR[i].begin = begin;
ForNext->FOR[i].step = step;
ForNext->FOR[i].to = to;
Search = 1;
break;
}
}
if(Search == 0){
ForNext->FOR[ForNext->size].var = var;
ForNext->FOR[ForNext->size].begin = begin;
ForNext->FOR[ForNext->size].step = step;
ForNext->FOR[ForNext->size].to = to;
ForNext->size = ForNext->size + 1;
}
}
}
我想在不更改功能的情况下优化和删除局部变量“搜索”。
如果我正确理解了所有内容,那么只需更改
break
并return
丢弃所有结构 whereSearch
。