@ dano :
Code: C
void fun(void) {
int a, b, c; /*definition 1 */
while (…) {
int b, c, d; /*definition 2 */
… ← 1
while (…) {
int c, d, e; /* definition 3 */
… ← 2
}
… ← 3
}
… ← 4
}
Point 1 : (i) a is visible as per definition 1.
xxxxxxx#(ii) b is visible as per definition 2.
xxxxxxxx(iii) c is visible as per definition 2.
xxxxxxxx(iv) d is visible as per definition 2.
Point 2 : (i) a is visible as per definition 1.
xxxxxxx#(ii) b is visible as per definition 2.
xxxxxxxx(iii) c is visible as per definition 3.
xxxxxxxx(iv) d is visible as per definition 3.
xxxxxxx#(v) e is visible as per definition 3.
Point 3 : Same as Point 1.
Point 4 : (i) a is visible as per definition 1.
xxxxxxx#(ii) b is visible as per definition 1.
xxxxxxxx(iii) c is visible as per definition 1.
If you don't understand Static Scoping, look at the link I mentioned for
shabbir (in the post above).