Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

(Sebesta, 2000) Considere o seguinte programa C esquemático:

void main()
{
int a, b, c;
...
}

void fun1(void)
{
int b, c, d;
...
}

void fun2(void)
{
int c, d, e;
...
}

void fun3(void)
{
int d, e, f;
...
}

Dadas as seguintes sequências de chamada e supondo-se que seja usado o escopo dinâmico, quais variáveis são visíveis durante a execução da última função chamada? Inclua, em cada variável visível, o nome da função em que ela foi definida

  1. main chama fun2; fun2 chama fun1; fun1 chama fun3.
  2. main chama fun3; fun3 chama fun1; fun1 chama fun2.

 

a. main chama fun2; fun2 chama fun1; fun1 chama fun3.

d, e e f de fun3; b e c de fun1; a de main (d de fun1; c, d e e de fun2; b e c de main estão ocultos)

b. main chama fun3; fun3 chama fun1; fun1 chama fun2.

c, d e e de fun2; b de fun1; f de fun3; a de main (c e d de fun1; d e e de fun3; b e c de main estão ocultos)

Sebesta, Robert W. (2000). Conceitos de Linguagens de Programação. 4ª edição. Porto Alegre: Bookman. 624 páginas.