Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.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
a'中的两个变量;对于';C中的循环_C_For Loop - Fatal编程技术网

a'中的两个变量;对于';C中的循环

a'中的两个变量;对于';C中的循环,c,for-loop,C,For Loop,我正在编写一些代码,其中需要在for循环中使用两个变量。下面的代码看起来还好吗 它确实给了我预期的结果 for (loop_1 = offset,loop_2 = (offset + 2); loop_1 >= (offset - 190),loop_2 <= (190 + offset + 2); loop_1--,loop_2++) { if ( (*(uint8_t*)(in_payload + loop_1) == get_a1_byte(bitslip)) &am

我正在编写一些代码,其中需要在
for
循环中使用两个变量。下面的代码看起来还好吗

它确实给了我预期的结果

for (loop_1 = offset,loop_2 = (offset + 2); loop_1 >= (offset - 190),loop_2 <= (190 + offset + 2); loop_1--,loop_2++)
{
    if (  (*(uint8_t*)(in_payload + loop_1) == get_a1_byte(bitslip)) &&
         ((*(uint8_t*)(in_payload + loop_2) == get_a2_byte(bitslip)))
       )
    {
          a1_count++;
    }
}

对于(loop_1=偏移量,loop_2=(偏移量+2);loop_1>=(偏移量-190),loop_2问题在于测试条件:

loop_1 >= (offset - 190),loop_2 <= (190 + offset + 2)

<代码> Loopy1> =(偏移190),Loopy2=(偏移量190))&(Roopy2

Mat)是正确的,但是您应该考虑将代码简化为:

for (i = 0; i <= 190; i++)
{
    uint8_t *pl1 = (uint8_t *)(in_payload + offset - i);
    uint8_t *pl2 = (uint8_t *)(in_payload + offset + i + 2);

    if (*pl1 == get_a1_byte(bitslip) && *pl2 == get_a2_byte(bitslip))
    {
        a1_count++;
    }
}

for(i=0;i关于你的语义问题,请参阅caf的答案。在开始打字之前,首先尝试直截了当地说出你的想法

一个误解是,您混淆了C的两个不同概念:初始化和赋值。显然,在您的代码中,您在初始化时考虑的是逗号可以完美工作的地方。因此,下次遇到类似问题时,只需使用局部变量。这些是C99中的有效结构,一个无论如何,这是一件好东西

您没有给我们变量的类型,但是假设
size\t
您的
for
语句如下

for (size_t loop_1 = offset, loop_2 = (offset + 2);
     loop_1 >= (offset - 190) && loop_2 <= (190 + offset + 2);
     loop_1--, loop_2++)
for(size\u t loop\u 1=偏移量,loop\u 2=(偏移量+2);

loop_1>=(偏移量-190)和&loop_2哇,我盯着这段代码,不管我怎么努力,我都几乎无法理解它在做什么:-)我一直很钦佩C程序员。@DarinDimitrov如果你愿意,我可以用C#重写它,但它将是一样的:-)@xanatos,噢,我真诚地希望你不要用C#写这样的东西。我是说指针?拜托,BCL肯定有内置的东西来实现这一点(不管这段代码试图实现什么)。
for (size_t loop_1 = offset, loop_2 = (offset + 2);
     loop_1 >= (offset - 190) && loop_2 <= (190 + offset + 2);
     loop_1--, loop_2++)