Pequena dúvida C

souto

To fold or to FOLD?
Vivam,

Estava aqui a analisar um código em C, quando me deparei com algo do género:

Código:
int bla(void) {
  call_1();
  call_2();

[COLOR="DarkOrange"]  {
     int a;
     int b;
     if ()...
  }[/COLOR]

}

A minha dúvida é porque está aquele código (a laranja) dentro de chavetas. Para que servem as chavetas?

Obrigado.
 
Última edição:
Nesse caso as chavetas não estão a fazer nada, nem deviam estar aí.

Não sei se assim funciona, talvez funcione mas não estão a fazer nada as chavetas.
 
as chavetas é um begin e um end...
e nao tao ai a fazer nada, supostamente para defenir variaveis nao preciasas de abrir e fechar...
 
Creio que é para definir variáveis locais apenas dentro dessas chavetas. Faz o teste: define uma variável dentro das chavetas, e tenta acede-la depois das chavetas.
 
Código de teste:
Código:
#include <stdio.h>

void main ()
{
    int i = 1;
    int j = 1;

    printf("i = %d\nj = %d\n\n",i,j);

    {
        int j = 2;
        printf("i = %d\nj = %d\n\n",i,j);
    }

    printf("i = %d\nj = %d\n",i,j);
}



Output:

Código:
i = 1
j = 1

i = 1
j = 2

i = 1
j = 1

Fiz o teste, e é exactamente o que eu disse... :kfold:
 
Boa. É isso mesmo. Estes caramelos que escrevem código do kernel inventam com cada uma, até assusta.

Cumprimentos e obrigado! :)
 
Penso que ele quis dizer locais àquela porção de código e não locais à função em sim.
Variáveis locais à porção de código?
Entre as chavetas?

Ou são da função (daí locais) ou globais. Se estiverem entre chavetas naquela porção de código, o código a seguir às chavetas continua a ter acesso às mesmas variáveis.
 
em C variaveis não-globais so podem ser declaradas no inicio de um scope, não de uma função obrigatoriamente.
é para isso que as chavetas servem.
 
Vivam,

Estava aqui a analisar um código em C, quando me deparei com algo do género:

Código:
int bla(void) {
  call_1();
  call_2();

[COLOR=DarkOrange]  {
     int a;
     int b;
     if ()...
  }[/COLOR]

}
A minha dúvida é porque está aquele código (a laranja) dentro de chavetas. Para que servem as chavetas?

Obrigado.

A isso chama-se scope.

Essas variáveis só estavam visivéis dentro dessas chavetas.

sup
 
Back
Topo