(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
main
chama fun2
; fun2
chama fun1
; fun1
chama fun3
.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.