On 10/12/06, Gerhard Fiedler wrote: > > ----- quote ----- > > 6.5.3 The for statement [stmt.for] > > 1 The for statement > for ( for-init-statement conditionopt ; expressionopt ) statement > is equivalent to > > { > for-init-statement > while ( condition ) { > statement > expression ; > } > } > except that names declared in the for-init-statement are in the same > declarative-region as those declared in the condition, and except that > a continue in statement (not enclosed in another iteration statement) > will execute expression before re-evaluating condition. [Note: Thus > the first statement specifies initialization for the loop; the condi- > tion (_stmt.select_) specifies a test, made before each iteration, > such that the loop is exited when the condition becomes false; the > expression often specifies incrementing that is done after each itera- > tion. ] > > 2 Either or both of the condition and the expression can be omitted. A > missing condition makes the implied while clause equivalent to > while(true). > > 3 If the for-init-statement is a declaration, the scope of the name(s) > declared extends to the end of the for-statement. [Example: > int i = 42; > int a[10]; > > for (int i = 0; i < 10; i++) > a[i] = i; > > int j = i; // j = 42 > --end example] > > ----- end quote ----- > > > Some VC++ background on this issue: http://vcfaq.mvps.org/lang/1.htm > > There is probably a compiler switch that allows selecting one or the other > interpretation. Yes, /Zc:forScope or something like that... going to have to add it to my old projects at work as we upgrade so we'll at least get a warning. Orin. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist