静的 int 変数を (フラグとして) 宣言し、それを init() で -1 に初期化する C コードに問題があります。これは一度だけ呼び出され、値を 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();
}