static int 변수를 플래그로 선언하고, 한 번만 호출되는 init()에서 -1로 초기화 한 다음 C 나중에 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의 호출 코드 –
을 게시하십시오. –