Kevin KoflerLe 06/05/2013 à 14:09
Pour ne donner qu'une raison: Le compilateur C de Visual C++ est déclaré obsolète et n'est pas mis à jour pour les nouvelles versions du standard C. Ils conseillent de tout compiler avec le compilateur C++, mais même pas mal de code C conforme C89/C90 n'est pas compilable en C++, et surtout les standards C++ ne contiennent qu'une petite partie des nouveaux standards C99 et C11 et Visual C++ n'implémente pas les nouveautés du C qui ne font pas partie du C++. En particulier, Visual C++ ne gère pas les tableaux de taille variable, problème qui est à la source de pas mal de buffer overflows dans des projets multiplateforme qui créent des problèmes de sécurité pour tout le monde (cf. par exemple le code des libti* où Romain a mis des char foo[100] plutôt que des char foo[strlen(bar)+42] parce que Visual C++ n'accepte pas ces derniers; du coup, le code plante si bar est trop long). GCC, lui, fait son possible pour implémenter le C99 même dans g++; en particulier, les tableaux de taille variable sont gérés.