[c++]

Si t’as un projet C++, il ne compilera par défaut que les fichiers .cpp, .cxx, et autres extensions « classiques » du C++, dont « .c » ne fait pas partie (puisque ça veut dire que ton code est en C, pas en C++). Ca serait comme faire un fichier texte avec une extension « .t » et s’étonner que notepad ne se lance pas quand on double clique dessus.
Par contre, normalement, si tu sélectionnes ton fichier dans le Solution Explorer, et que t’affiches ses propriétés, tu dois pouvoir changer son « type » et mettre « compile » ou un truc dans le genre. Mais bon, tu devrais utiliser .cpp comme extension…
Et si tu veux vraiment coder en C, par contre, beh Visual C++ n’est pas ce qu’il te faut B)

Bah oui, mais l’important pour moi ici c’est de faire “tout comme au labo”, c’est-à-dire coder en C avec Visual C++, même si c’est malheureusement pas très “propre” c’est ça qui est demandé B)

Pourquoi ?

Parce qu’un compilateur C et un compilateur C++ sont différents. En codant en C avec un compilo C++, tu pourrais sans faire gaffe utiliser des fonctionnalités du C++ (par exemple, déclarer des variables ailleurs qu’au début d’une fonction). Tu aurais donc un code qui ne compilerait pas vraiment avec un « vrai » compilo C. Le C, c’est beaucoup plus restrictif que juste du C++ sans classes.

Après, y’a peut etre un réglage dans Visual C++ qui permet de faire basculer le compilo en mode « C pur », ça je sais pas…

[quote=“lordabdul, post:24, topic: 45963”]Parce qu’un compilateur C et un compilateur C++ sont différents. En codant en C avec un compilo C++, tu pourrais sans faire gaffe utiliser des fonctionnalités du C++ (par exemple, déclarer des variables ailleurs qu’au début d’une fonction). Tu aurais donc un code qui ne compilerait pas vraiment avec un “vrai” compilo C. Le C, c’est beaucoup plus restrictif que juste du C++ sans classes.

Après, y’a peut etre un réglage dans Visual C++ qui permet de faire basculer le compilo en mode “C pur”, ça je sais pas…[/quote]
On peut déclarer des variables ailleurs qu’au début d’une fonction depuis le C89 (ANSI) il me semble B) Mais je suis d’accord si le but est de faire du C pur (mais il faut se mettre d’accord sur quelle norme), il faut faire gaffe à ce que le compilateur respecte cette norme. Et le problème est le même sous Unix avec gcc, il faut utiliser les flags qui vont bien si on ne veut pas de la tonne d’extension GNU.

Je viens de jeter un oeil à cela, et ce n’a pas été trouvé.

Pour faire du “C standard” avec VS, il faut se lever tôt. Je te conseille de trouver un compilateur C (au hasard, MinGW, qui a le bon goût d’être gratuit (et libre accessoirement)) et de tester tes programmes avec. Pour coder propre, selon moi le mieux est de lancer une fenêtre d’entrée en ligne de commande et de compiler comme ça (ceci vaut pour le moment, tant que tu ne fais pas plusieurs modules séparés que tu assembles ensuite) en supposant que gcc.exe soit dans ta variable PATH. Normalement, il doit l’être une fois qu’il a été installé, mais je n’en suis plus certaine comme je ne fais que du C pour le système et à but éducatif. Pour les choses de plus grande envergure et plus proches de l’utilisateur, j’utilise C#/C++ pour éviter de réinventer la roue.

Cette commande t’affichera toutes les erreurs que tu auras pu commettre en écrivant ton programme, même celles non fatales. Il vaut mieux les éliminer. Ainsi tu seras à peu près sûr de faire quelque chose de vaguement C-compliant.

Autre point : si tu veux continuer avec VC++ en C++ tu devrais plutôt préférer (qu’on me reprenne si je me trompe) les libs .Net (par exemple Console::WriteLine(“Hello, world”); ) à la stdlib (cout << “Hello, world” << endl;).
Pour faire du C++ avec la stdlib, le compilo de GCC suffit amplement. Tu pourras alors te passer d’IntelliSense, qui prend toute son intérêt dans une organisation hiérarchique des classes, méthodes et espaces de noms. Si la performance est ensuite un problème, achète un compilateur commercial. Sâche quand même qu’il faut d’abord optimiser les algos avant d’engueuler G++ B).

Bon courage pour la suite, n’hésite pas à poser des questions. En ce qui me concerne j’essaierai d’y répondre à la hauteur de ce que je sais.

En fait je recommanderais pas forcement de faire du .Net en C++ si on commence un projet de zero. A part besoin specifiques (il y en a plusieurs) il vaut peut etre mieux partir sur un projet dans un autre language. Cela dit… les raisons pour faire du C++ aujourd’hui… ca tombe aussi dans la categorie des besoins specifiques et plus du choix par defaut. Et le C est comme ca depuis encore plus longtemps B)

Oui dans un bloc, et en C99 un peu n’importe où, mais pour ce qu’on l’utilise… Je n’ai jamais utilisé Visual C++ mais j’en entends souvent parler comme ayant un compilateur C standard, par exemple ici. Personnellement je trouve que quand on apprend un langage portable l’idéal c’est de prendre un compilateur multiplateforme, en plus on trouve facilement des tutoriels pour GCC. Comme IDE Codeblocks est très bien et multiplateforme aussi.

[Edit]

Attention -Wall n’active pas tous les warnings, voir ici : http://gcc.gnu.org/onlinedocs/gcc-4.2.1/gc…Warning-Options
Un -Wextra et un -pedantic en plus ne peuvent pas faire de mal.