Comment faire pour “simuler” C99 dans Visual Studio pour la déclaration des variables
Je suis à l'aide de Visual Studio 2012 pour développer Win32 simple C de programmes. Je sais que le compilateur VS prend uniquement en charge les C89, mais je voudrais savoir si il existe un moyen d'outrepasser cette limitation.
En particulier, je tiens à déclarer des variables n'importe où dans mon code, au lieu de seulement au début de la portée des blocs (C89).
Merci d'avance.
Combien avez-vous de soins que le MSVC est un compilateur en C mode? Si vous le réglez à C++ mode, vous pouvez toujours écrire des C et vous pouvez utiliser C99 style de l'initialisation d'une variable.
Habituellement, je créer un simple "Visual C++ Projet Vide", puis-je ajouter un .fichier source c pour elle. Tu veux dire que je doit simplement ajouter .fichiers cpp au lieu de .c?
C'est une mauvaise idée de compiler des programmes en C, en C++, il y a beaucoup de différences subtiles: struct mise en œuvre, implicite pointeur de jette (par exemple la valeur de retour de malloc), différents bool mises en œuvre, les différents NULL implémentations et ainsi de suite.
à l'aide de Visual Studio 2012 pour développer Win32 simple C de programmes". Simple que dans aucune interface graphique, ou peut-être juste de brut API Windows? Dans ce cas, la meilleure solution pourrait être d'utiliser Visual Studio IDE et de compiler des programmes utilisant un vrai compilateur C comme Mingw.
Visual Studio 2013 prend désormais en charge mixte déclarations et le code.
Habituellement, je créer un simple "Visual C++ Projet Vide", puis-je ajouter un .fichier source c pour elle. Tu veux dire que je doit simplement ajouter .fichiers cpp au lieu de .c?
C'est une mauvaise idée de compiler des programmes en C, en C++, il y a beaucoup de différences subtiles: struct mise en œuvre, implicite pointeur de jette (par exemple la valeur de retour de malloc), différents bool mises en œuvre, les différents NULL implémentations et ainsi de suite.
à l'aide de Visual Studio 2012 pour développer Win32 simple C de programmes". Simple que dans aucune interface graphique, ou peut-être juste de brut API Windows? Dans ce cas, la meilleure solution pourrait être d'utiliser Visual Studio IDE et de compiler des programmes utilisant un vrai compilateur C comme Mingw.
Visual Studio 2013 prend désormais en charge mixte déclarations et le code.
OriginalL'auteur eang | 2012-11-09
Vous devez vous connecter pour publier un commentaire.
Le choix que je vois:
Notez que cette réponse n'est plus correct que de MSVC2013.
OriginalL'auteur Christoph
Cela semble datée du thread, mais après avoir débarqué ici pour la première fois alors que j'étais à la recherche de la même question, j'ai pensé que je devrais poster une mise à jour:
De VS13, le compilateur Visual C++ prend en charge C99 style déclarations de variables. Plus de détails ici:
http://blogs.msdn.com/b/vcblog/archive/2013/06/28/c-11-14-stl-features-fixes-and-breaking-changes-in-vs-2013.aspx
OriginalL'auteur HYildiz
Construire votre application en utilisant le compilateur C++. C'est le moyen le plus facile. Vous pouvez toujours écrire du code C juste le nom du fichier *.rpc
J'aimerais voir certains C un code qui ne compile pas sous C++
le classique est la fonction malloc de la coulée... char* toto = malloc(1); vs char* toto = reinterpret_cast< char* >( malloc(1) );
un autre exemple serait le manque de soutien pour les initialiseurs en C++, qui, parfois, ne peut pas être contourné sans
#ifdef __cplusplus
(par exemple initialisation statique des syndicats)Outre les incompatibilités entre C et C++, le problème avec l'aide d'un compilateur C++ pour le développement en C est que vous perdez tous utiles compilateur diagnostics. Sauf si vous avez une très bonne connaissance de C et les subtiles différences entre le C et le C++, vous pouvez vous retrouver avec non valide code C. Un compilateur C++ peut être utile pour l'obtention de certains existantes c l'exécution de code (avec quelques modifications), mais c'est une mauvaise idée de l'utiliser pour le développement d'un nouveau code.
OriginalL'auteur DjSol