6. Глубокие if
Last updated
Last updated
int main(int argc, char *argv[])
{
if (fopen(argv[1], "r"))
{
int size;
if (fscanf("%d\n", &size) == 1)
{
char *arr = malloc(size);
if (arr != NULL)
{
// etc.
}
else
{
// memory allocation failed
return 1;
}
}
else
{
// cannot open input file
return 1;
}
}
else
{
// cannot open input file
return 1;
}
return 0;
}
Большая вложенность условий, циклов и пр. пагубно влияет на просматривающих код, т.к. всегда требуется держать в голове при каких таких условиях мы попали сюда.
int main(int argc, char *argv[])
{
if (!fopen(argv[1], "r"))
{
// cannot open input file
return 1;
}
int size;
if (fscanf("%d\n", &size) != 1)
{
// cannot open input file
return 1;
}
char *arr = malloc(size);
if (arr == NULL)
{
// memory allocation failed
return 1;
}
// etc.
return 0;
}