Напишите функцию в c, которая включает следующую последовательность операторов [Wont Compile] - PullRequest
2 голосов
/ 16 марта 2010

В моем учебнике по языкам программирования есть вопрос:

Напишите функцию C, которая включает следующая последовательность утверждений:

х = 21; int x; х = 42;

Запустите программу и объясните Результаты. Переписать тот же код в C ++ и Java и сравните результаты.

Я написал код и поиграл с ним на всех трех языках, но даже не могу заставить его скомпилировать. Это включает в себя объявление х над тремя строками, а также в вызывающей функции (поскольку этот вопрос явно пытается проиллюстрировать проблемы с областями видимости)

Я хотел бы объяснить результаты и провести сравнения самостоятельно, так как это вопрос задания, но мне было интересно, есть ли у кого-нибудь понимание того, как заставить этот код компилироваться?

Спасибо

1 Ответ

4 голосов
/ 16 марта 2010

Обратите внимание на следующее требует C99:

int x;

void foo()
{
    x = 21;
    int x;
    x = 42;
}

Так как это домашнее задание, вам нужно предоставить собственное объяснение.

...