Hello all, I have a question in understanding static scoping. i have a this as an example. Code: 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 } for each of the four marked points in this function, list each visible variable, along with the number of definition statement that defines it. can any one help me understand static scoping using this example? Thank you in advance.
The article you mentioned talks about static variables in c++, not about static scoping. Static scoping is different : http://en.wikipedia.org/wiki/Scope_(programming)#Static_versus_dynamic_scoping.
@ dano : Code: 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).