Вот лучшая версия кода, которая должна делать то же самое. Надеюсь, это будет легче понять. Имена argc
и argv
де-факто являются стандартными, их следует использовать, чтобы сделать код более понятным для других программистов.
int main (int argc, char *argv[])
{
FILE *fp;
int i;
if ( argc == 1 )
{
do_more( stdin );
}
else
{
for(i=1; i<argc; i++) /* skip the name of the executable, start at 1 */
{
fp = fopen (argv[i], "r");
if(fp == NULL)
{
/* error message, return etc here */
}
do_more( fp ) ;
fclose( fp );
}
}
return 0;
}