LINUX.ORG.RU

А чего удивительного? В С90 действительно написано, что декларации должны идти до кода.

alexru ★★★★
()
Ответ на: комментарий от Zmacs

в первый раз сталкиваюсь, хотя это и правильно. лучше бы сделали тогда в явном виде как в паскале, а то если есть возможность объявить переменные в тексте - это входит в привычку :)

shuthdar ★★★
() автор топика
Ответ на: комментарий от shuthdar

Ну, это дурная привычка. Код, все же, стоит оформлять правильно. Даже если думаешь, что пишешь только для себя.

parser ★★
()
Ответ на: комментарий от shuthdar

> а то если есть возможность объявить переменные в тексте

В C есть возможность объявить в начале блока и все. Возможность "объявить переменные в тексте" - отрыжка С++.

anonymous
()
Ответ на: комментарий от anonymous

Не сказал бы, что это "отрыжка". Возможность объявлять переменные в иницилизационной части for-цикла - весьма полезный "синтаксическй сахар". К тому же избавляет код от лишних, обычно не мнемонических, переменных.

parser ★★
()
Ответ на: комментарий от parser

IMHO это не дурная привычка - логично объявлять переменные (уж раз язык того требует) при их _инициализации_.

Begemoth ★★★★★
()

И при чем тут ядро? В Си объявления переменных должны идти в начале блока. Читайте Кернигана и Ритчи и не задавайте тупых вопросов.

Reset ★★★★★
()

Правильно компилятор говорит. В стандарте C смешивание не рекомендуется. Для C++ можно.

Кстати, MS VC++ 6.0 (не к ночи будь помянут) вообще сишный код не компилирует с таким mixed declarations.

Shmuma
()
Ответ на: комментарий от Reset

> И при чем тут ядро?

Компиляция ядра происходит с флагами, при которых компилер пишет ругань на определение переменных не в начале. В другом месте на это он скорее всего не наталкивался.

Zmacs
()
Ответ на: комментарий от Reset

В С99 это не так ЕМНИП - читайте стандарт и будет вам счастье

Begemoth ★★★★★
()

такой варнинг будет появляться если при компиляции указан флаг --pedantic. я обычно так и компилирую для того что бы все кодовые недочёты видеть. а ещё хорошо -Wall и -Werror делать :)

luch
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.