@ 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).