Microsoft KB Archive/167748

= PRB: Variable Scope in for-statement Extends Beyond Loop =

Article ID: 167748

Article Last Modified on 7/5/2005

-

APPLIES TO


 * Microsoft Visual C++ 5.0 Standard Edition
 * Microsoft Visual C++ 6.0 Service Pack 5

-



This article was previously published under Q167748



SYMPTOMS
If you declare the same variable in two different for-statements, the following error may appear:

Test.cpp(4) : error C2374: 'i' : redefinition; multiple initialization



CAUSE
The scope of a variable declared in the initialization part of a "for" loop is given local scope, as if it had been declared immediately prior to the for-statement.



RESOLUTION
Compile with /Za, Disable Language Extensions. To select this option in Developer Studio, select Project, Settings, and then click the C/C++ Tab. Change the Category to Customize and select Disable Language Extensions.

If you cannot use the /Za option, you can work around the problem by #defining the "for" keyword as follows:
 * 1) define for if(0);else for



MORE INFORMATION
/* Compile Options Needed to compile without error: /Za */

/* test.cpp */ void main { for (int i=0; i<10; i++) ; for (int i=0; i<15; i++) ; }

Keywords: kblangcpp kbprb KB167748

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.