Небольшо уточнение
«можно правда в одном стандарте» звучит почти как «ну вот есть несколько разных равноправных стандартов, в каком-то одном из них это можно» и такая фраза, на мой взгляд, больше подходит для расширений стандарта в духе привязки переменной к адресам через @.
Стандарты же на язык программирования С развиваются последовательно, с выходом нового стандарта следует старые называть устаревшими, а не новый «одним».
Тем более, что стандарту C99 уже одиннадцать лет.
А то так можно сказать, что так
«можно в некоторых стандартах, а в С нужно делать так»
(а ведь когда-то и так писать приходилось, эх...)
Вот если в предыдущих фразах слово «стандарт» заменить на слово «компилятор», тогда всё нормально — «в некоторых компиляторах уже можно применять стандарт С99», «некоторые компилятры не поддреживают стандарт С99», «в этом комипляторе стандарт С99 поддержан не полностью».
p.s. Да, кстати, если уж компилятор не поддерживает из С99 даже объявление по месту применения, то выносить нужно не «за пределы цикла», а «в начало охватывающего блока», что звучит на первый взгляд похоже и иногда даже совпадает по резуьтату, но означает, что из
Код: Выделить всё
while(1) {
...
for(int i=0; i < 1000; ++i) {
...
}
...
}
надо делать не
Код: Выделить всё
while(1) {
...
int i;
for(i=0; i < 1000; ++i) {
...
}
...
}
а
Код: Выделить всё
while(1) {
int i;
...
for(i=0; i < 1000; ++i) {
...
}
...
}