我遇到了一個問題,我的C代碼中聲明瞭一個靜態變量(作爲標誌),然後在init()中初始化爲-1,只調用一次,然後當我嘗試稍後將值更新爲0或1,它會一直恢復爲-1。C靜態變量不更新
有誰知道這個問題可能是什麼?
我沒有任何具有相同標識符的本地變量,所以我真的迷路了。
謝謝!
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();
}
傳遞給'moveForward()'函數的是什麼? –
請根據狀態發佈調用代碼 –
,要麼是0,要麼是1. –