Я знаком с C ++ и недавно решил выучить C. Учебник, которому я следую, часто пишет для таких циклов:
int i;
for (i = 0; i < 5; i++)
{
printf("%d", i);
}
Вы можете видеть, что counter (i) объявлен вне тела для l oop. Когда я пишу это в C (и C ++), я пишу:
for (int i = 0; i < 5; i++)
{
printf("%d", i);
}
Я немного исследовал это, и кажется, что последнее было незаконно в C89 и было введено только в C99. Тем не менее, учебник, который я использую, основан на C99, и я также видел много современного C кода, в котором счетчик все еще объявлен вне тела для l oop.
Следовательно, вопрос, который я задаю: есть ли практическая польза от объявления счетчика вне тела для l oop в C99? Другими словами, каким образом мне написать это?
Примечание: я видел, что есть «похожие вопросы», но большинство из них спрашивают, почему счетчик объявлен вне для l oop тело в некотором коде, а не есть ли какая-либо выгода. С учетом вышесказанного был один похожий вопрос, который задавался о пользе, но он был в C ++, и я не уверен, есть ли разница между двумя языками в этом отношении.