Curso de C
Formatação do Código
Você está em: MarMSX >> Cursos >> C
O objetivo deste capítulo é mostrar ao leitor, como a convenção da identação C ajuda a leitura e compreensão do programa.
Veja o exemplo a seguir em C.
#include <stdio.h>
int a,b;
main()
{
a=5;
b=0;
while (a>=b)
{
if (a>b)
printf("a ainda é maior\n");
else
printf("a é igual a b\n");
a++;
b+=2;
}
}
O programa apresentado é compilado e funciona normalmente. Entretanto, é difícil identificar as estruturas do programa, como os IFs, WHILEs etc. Com várias estruturas aninhadas (uma dentro da outra), fica ainda mais difícil saber onde começa e termina o código de cada uma delas.
A identação, ou colocar espaços em branco antes, serve para alinhar a partir da mesma coluna os comandos que pertencem a uma determinada estrutura, de forma a realçá-la e aumentar a legibilidade do código. Não há uma regra fixa sobre a quantidade de espaços em branco, mas normalmente se utilizam 2, 4 ou o espaço de uma tabulação.
O programa anterior foi identado com 2 espaços em branco para cada estrutura. Observe como melhorou a compreensão do código.
#include <stdio.h>
int a,b;
main()
{
a=5;
b=0;
while (a>=b)
{
if (a>b)
printf("a ainda é maior\n");
else
printf("a é igual a b\n");
a++;
b+=2;
}
}
A seguir, serão destacadas cada estrutura do código.
#include <stdio.h>
int a,b;
main()
{
a=5;
b=0;
while (a>=b)
{
if (a>b)
printf("a ainda é maior\n");
else
printf("a é igual a b\n");
a++;
b+=2;
}
}
Observando o diagrama acima, tudo que está no conjunto vermelho pertence ao corpo principal do programa, em azul ao WHILE e em verde ao IF.
Importante: nem tudo que está na mesma coluna pertence à mesma estrutura, uma vez que a estrutura é delimitada pelos marcadores de inicio e fim. Veja o exemplo a seguir.
#include <stdio.h>
int a,b;
main()
{
a=5;
b=0;
while (a>=b)
{
if (a>b)
printf("a ainda é maior\n");
if (a==b)
printf("a é igual a b\n");
a++;
b+=2;
}
}
As estruturas IF assinaladas em verde são duas estruturas distintas, entretanto ambas estão na "raiz" da estrutura WHILE, assinalada em azul.