> int i = i;

According to section 6.2.1 paragraph 7 of the C99 specification, a local 
variable declaration "has scope that begins just after the completion of 
its declarator."

According to section 6.7 paragraph 1 of the same specification, The 
declarator includes just the "int i" part of the above code fragment. 
The initializer after the equals sign is not part of the declarator:

        init-declarator:
                declarator
                declarator = initializer

Based on the above, I assert that the inner local variable is already in 
scope by the time its initializer is being processed.  Hence, you are 
initializing the inner local variable with itself, not with the value of 
the same-named outer local variable.

Anybody have a contrary reading of the specification?

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
CIL-users mailing list
CIL-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cil-users

Reply via email to