Пример некоторое время цикла, который не может быть записан как для цикла

Вместо getopt(), можно также рассмотреть использование argp_parse() (альтернативный интерфейс к той же библиотеке).

От libc руководство :

getopt является более стандартным (короткая опция, только версия ее является частью стандарта POSIX), но использование argp_parse часто легче, и для очень простых и очень сложных структур опции, потому что она делает больше грязной работы для Вас.

, Но я был всегда доволен стандартом getopt.

N.B. GNU getopt с getopt_long является GNU LGPL.

6
задан Evan Carroll 24 July 2018 в 21:00
поделиться

4 ответа

Да, легко.

while (cond) S;

for(;cond;) S;
15
ответ дан 8 December 2019 в 14:44
поделиться

Цикл while и классический цикл for взаимозаменяемы:

for (initializer; loop-test; counting-expression) {
    …
}

initializer
while (loop-test) {
    …
    counting-expression
}
2
ответ дан 8 December 2019 в 14:44
поделиться

В языках типа C вы можете объявлять циклы for, например так:

for(; true;)
{
    if(someCondition)
       break;
}

В языках, где for более строгий, бесконечные циклы могут потребовать а цикл .

-1
ответ дан 8 December 2019 в 14:44
поделиться

Если у вас есть фиксированная граница и шаг и не разрешается модификация переменной цикла в теле цикла, то циклы for соответствуют примитивным рекурсивным функциям.

С теоретической точки зрения это более слабые, чем обычные циклы while, например, вы не можете вычислить функцию Акермана только с такими циклами for.

Если вы можете предоставить верхнюю границу для условия в цикле while, чтобы оно стало истинным, вы можете преобразовать его в цикл for . Это показывает, что в практическом смысле нет никакой разницы, поскольку вы можете легко дать астрономически высокий предел, скажем, дольше, чем продолжительность жизни Вселенной.

1
ответ дан 8 December 2019 в 14:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: