У меня есть две версии той же функции, и я не уверен, какой из двух я должен выбрать. Они делают то же самое, но мне интересно, есть ли «правильный путь» для этого, или это только вопрос эстетики.Самый простой способ пройти через список указателей?
//both functions have to start at the second element
int multiFileHandler_1(char **files, int filenumber)
{
filenumber = filenumber - 1;
*files++;
while(filenumber--)
{
printf("%s\n", *files);
fileOpen(*files);
}
return EXIT_SUCCESS;
}
int multiFileHandler_2(char **files, int filenumber)
{
char **file;
for (file = &files[1]; *file != '\0'; file++)
{
printf("%s\n", *file);
fileOpen(*file);
}
return EXIT_SUCCESS;
}
Я читал читал несколько текстов о читаемости кода и несколько подался к использованию for
, поскольку он помещает всю важную информацию в одном блоке. Но версия while
выглядит немного аккуратно.
EDIT: Ах, stackoverflow - это довольно обучающий опыт. Показывает, сколько я n00b. : P
Если вы считаете, что версия 'while' выглядит более аккуратной, используйте версию' while'. –
Две петли делают разные вещи. –
'for (file = & files [1]; * file! = '\ 0'; file ++)' нуждается в гарантированном разделителе в последнем поле char * \ 0 '(в противном случае он заканчивается), что необязательно в первой версии. Таким образом, нет эстетики, кроме синтаксических различий. – Bort