小编swi*_*ano的帖子

需要帮助找到为什么for循环的计数器变量被循环内的函数改变的原因

我的循环中的一个函数以某种方式改变了我迭代的值,我不确定如何.如果描述得很糟,我很抱歉.

在这个for循环中

int k;

for( k = 0; k < 512; k++)
{
    // Discardheader(d);      // doesnt actually do anything, since it's a header.f
    int databit = Getexpecteddata(d+4*k+1);
    printf("%d ",k);
    int transmitted = Datasample(&datastate, &datalength, d+4*k+2,dataerr,dataloc, databit);
    printf("%d ",k);
    Clocksample(&clockstate, &clocklength, d+4*k+3,clockerr, transmitted); 
    printf("%d \n",k);

}
Run Code Online (Sandbox Code Playgroud)

我得到这个输出

16 16 16
17 17 17
18 18 18
19 19 19
20 20 20
21 1 1
2 2 2
3 3 3
4 4 4
Run Code Online (Sandbox Code Playgroud)

所以Datasample一旦达到21就会改变k的值.d是char*d类型,表示我读取文件的缓冲区.更改输入文件不会改变21,切换发生.这是数据样本的代码:

int Datasample (int* state, int* …
Run Code Online (Sandbox Code Playgroud)

c for-loop

3
推荐指数
1
解决办法
208
查看次数

标签 统计

c ×1

for-loop ×1