в процессе компиляции модуля ядра получаю - "warning: ISO C90 forbids mixed declarations and code". перемещаю декларацию переменных в начало процедуры - варнинг изчезает. я очень удивлён...
в первый раз сталкиваюсь, хотя это и правильно. лучше бы сделали тогда в явном виде как в паскале, а то если есть возможность объявить переменные в тексте - это входит в привычку :)
Не сказал бы, что это "отрыжка". Возможность объявлять переменные в иницилизационной части for-цикла - весьма полезный "синтаксическй сахар". К тому же избавляет код от лишних, обычно не мнемонических, переменных.
Компиляция ядра происходит с флагами, при которых компилер пишет ругань на определение переменных не в начале. В другом месте на это он скорее всего не наталкивался.
такой варнинг будет появляться если при компиляции указан флаг --pedantic. я обычно так и компилирую для того что бы все кодовые недочёты видеть. а ещё хорошо -Wall и -Werror делать :)