Sans optimisations du compilateur produit très bête de code - chaque commande est compilé dans un très simple, de sorte qu'elle ne les entendait chose. Les versions de Débogage ont optimisations désactivé par défaut, parce que sans les optimisations de l'exécutable produit correspond au code source de façon simple.
Les Variables conservées dans les registres
Une fois que vous mettez sur les optimisations, le compilateur s'applique beaucoup de différentes techniques pour rendre le code en cours d'exécution plus rapide tout en faisant la même chose. La différence la plus évidente entre optimisé et unoptimized construit dans Visual C++ est le fait que les valeurs de la variable sont conservés dans des registres aussi longtemps que possible dans optimisé construit, alors que sans optimisations qu'ils sont toujours stockées dans la mémoire. Cela affecte non seulement le code de vitesse, mais il affecte également le débogage. Comme un résultat de cette optimisation, le débogueur ne peut pas obtenir de manière fiable la valeur d'une variable que vous avancerez dans le code.
D'autres optimisations
Il existe de nombreuses autres optimisations appliquées par le compilateur, comme décrit dans l' /O Options (Optimiser le Code) MSDN docs. Pour une description générale des différentes optimisations techniques voir Wikipédia Optimisation du Compilateur article.