static scoping in C

dano's Avatar, Join Date: Jun 2009
Newbie Member
Hello all,

I have a question in understanding static scoping. i have a this as an example.

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
    }
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.

Last edited by SaswatPadhi; 21Jun2009 at 08:45.. Reason: Code-block
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
Check out All about Static in C++. It has everything you would like to know about Statics in C++
0
SaswatPadhi's Avatar, Join Date: May 2009
~ Б0ЯИ Τ0 С0δЭ ~
Quote:
Originally Posted by shabbir View Post
Check out All about Static in C++. It has everything you would like to know about Statics in C++
The article you mentioned talks about static variables in c++, not about static scoping.
Static scoping is different : http://en.wikipedia.org/wiki/Scope_%...ynamic_scoping.
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
Opps. My mistake
0
SaswatPadhi's Avatar, Join Date: May 2009
~ Б0ЯИ Τ0 С0δЭ ~
@ 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).
0
dano's Avatar, Join Date: Jun 2009
Newbie Member
Thank you that helped.