我的 C 代码有问题,我声明了一个静态 int 变量(作为标志),然后在仅调用一次的 init() 中将其初始化为 -1,然后当我尝试将值更新为 0 或1 之后,它不断恢复到 -1。
有谁知道问题可能是什么?
我没有任何具有相同标识符的局部变量,所以我真的迷路了。
谢谢!
static int previousState;
void init()
{
   previousState = -1;
}
void moveForward(int currentState)
{
    if (previousState == -1)
        previousState = currentState;
    if (previousState != currentState)
    {
        /* do stuff */
        /* PROBLEM: it never goes into here, because previousState is always -1! */
    }
    /* other code */
}
void main()
{
   init();
   if (fork() == 0)
   {
        /* do stuff */
        moveForward(1);
        exit();
   }
   /* more forks */
   moveForward(0);
   exit();
}