Si j'avais le code suivant:
myvar = 0; var2 = 0;
5 Réponses :
Non, ce ne serait pas (§3.3.2 Portée locale): P>
- Un nom déclaré dans un bloc (6.3) est local à ce bloc. Son potentiel la portée commence à son point de Déclaration (3.3.1) et se termine à la fin de sa région déclarative. Li> ol> blockQuote>
Je vous recommande d'utiliser des compilers publiés au cours de la dernière décennie. P>
serait-ce légal? Mon VC ++ 6 compile correctement, mais je pense que cela devrait être illégal. P> blockQuote>
Non, cela ne devrait pas être légal. Dump VC ++ 6. Utilisez un nouveau compilateur. P>
VC a pris environ une décennie pour mettre en œuvre une portée appropriée des variables déclarées dans des boucles et des états conditionnels. Généralement, vous ne pouvez pas compter sur le jugement VC6 concernant C ++. p>
VC6 est plutôt vieux, et pas toujours ... rigide ... dans son application de la norme :-) En fait fuite em> portée dans certaines circonstances telles que: for (int i = 0; i < 10; i++) { }
// You can still use 'i' here.
qui devrait être illégal mais VC6 était très mauvais à cela. P>
Dans Visual Studio 2005, un nouveau paramètre de niveau de projet a été introduit nommé Cependant, une chose que MSD a eu raison dans la VS2005 de la transformer par défaut de par défaut, devenant un peu plus proche des normes. P>
"Mon VC ++ 6 compile correctement," Non, ça ne le fait pas.
@all répond, j'ai VC ++ 6 uniquement sur un ordinateur; Sur mon autre, j'ai VC ++ 2008eee. Je suis obligé d'utiliser VC ++ 6. :)