Noob et C/C++

Résolu
thedarkkillerz Messages postés 18 Date d'inscription samedi 3 juillet 2004 Statut Membre Dernière intervention 21 juin 2010 - 11 oct. 2008 à 16:25
thedarkkillerz Messages postés 18 Date d'inscription samedi 3 juillet 2004 Statut Membre Dernière intervention 21 juin 2010 - 12 oct. 2008 à 20:48
Bonjour,
je suis habitué au C#  et au confort de Visual Studio et je voudrait passer au C/C++, j'ai donc suivit pas mal de cours sur le net mais il y a quelques notions que j'ai un peu de mal à saisir, corrigez moi si je me trompe:

string maVariable;
string *monPointeur = &maVariable;
Dans ce cas je crée un pointeur qui pointe sur la variable maVariable

string monTableau[5] = {0}; //Je crée un tableau dont chaque élément est un string

mais si je fait :
string *monTableau[5];
Je crée un pointeur vers un tableau de string ou je crée un tableau de pointeurs dont chaque pointeur pointe sur un string

J'ai d'autres questions au passage, au risque de me faire taper par les Pro/Linux et autres;
-Existe-t-il un IDE de qualité équivalente (je veux dire au niveau de l'intellisense et du débugger) sous linux et comment les paramétrer? parceque j'ai essayé Code::Block, j'arrive à débugger mais je trouve l'intellisense moyen, j'ai essayé Eclipse j'arrive pas du tout à compiler et j'ai essayé KDevelop, j'arrive à compiler, l'intellisense est bon(a part qu'il freeze 2-3 secondes à chaque mot) mais je peux pas débugger.

-Quelles sont les différences entre la compilation pour Windows et Linux? Le C et C++ sont sensés être multi-plate-forme non?

8 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
11 oct. 2008 à 19:53
"par exemple un exécutable qui fait simplement 2+3 doit obligatoirement être recompilé pour chaque OS?"

Oui.

Les instructions générés sur des machines avec une architecture similaire (disons 386) seront les mêmes.
Cependant, le format des exécutables diffère selon les OS. PE sous windows, ELF sous linux, Mach-O sous mac-os X, chacuns étant développer/adapté pour l'OS.
Voilà pourquoi il faut recompiler même le plus simple des programmes.

C++ (@++)<!--
3
thedarkkillerz Messages postés 18 Date d'inscription samedi 3 juillet 2004 Statut Membre Dernière intervention 21 juin 2010
11 oct. 2008 à 16:30
Désolé pour le double post mais j'oubliais,
-Y-a-t il un moyen par exemple de faire une DLL en C/C++ et de l'appeler sous .Net ou l'inverse?
-Et qu'en bonus cette DLL puisse être compatible Windows/Linux (c'est beau de rêver )?
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
11 oct. 2008 à 18:24
"string *monTableau[5];"

Un tableau de 5 pointeurs de string.

"Quelles sont les différences entre la compilation pour Windows et Linux? Le C et C++ sont sensés être multi-plate-forme non?"

Ce langage n'est pas de l'interprété mais compilé. Ce qui est généré par le compilateur est un binaire exécutable directement sans passer par moulte interpreteurs. Le binaire dépend cependant de la plateforme pour laquelle il a été compilée.

Le langage peut-être utiliser sur toute plateforme ayant un compilateur C/C++. Aucun problème la dessus. Les API, cependant, diffères.

"-Et qu'en bonus cette DLL puisse être compatible Windows/Linux (c'est beau de rêver )?"

Au niveau binaire, non.

C++ (@++)<!--
0
thedarkkillerz Messages postés 18 Date d'inscription samedi 3 juillet 2004 Statut Membre Dernière intervention 21 juin 2010
11 oct. 2008 à 19:16
"Ce langage n'est pas de l'interprété mais compilé. Ce qui est généré par le compilateur est un binaire exécutable directement sans passer par moulte interpreteurs. Le binaire dépend cependant de la plateforme pour laquelle il a été compilée."

Je comprend que si on utilise des API propres aux OS ça puisse poser problème pour la compatibilité, mais il n'y a rien de "commun" entre les OS? par exemple un exécutable qui fait simplement 2+3 doit obligatoirement être recompilé pour chaque OS? Parceque je ne sais pas comment ça se passe pour les OS mais les binaires dépendent du jeu d'instructions du processeur non?

Je sais que ça fait beaucoup de questions mais je suis curieux et j'aimerais comprendre..
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thedarkkillerz Messages postés 18 Date d'inscription samedi 3 juillet 2004 Statut Membre Dernière intervention 21 juin 2010
11 oct. 2008 à 22:01
Merci pour ces précisions, je commence à comprendre.

Et en ce qui concerne les IDE, j'ai trouvé comment débugger sous KDevelop, mais je trouve que le debogger n'est pas aussi simple d'utilisation que celui de Visual Studio, lequel me conseilleriez-vous pour commencer?
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
12 oct. 2008 à 15:59
"je trouve que le debogger n'est pas aussi simple d'utilisation que celui de Visual Studio"

Bah on peut pas tout avoir ;)

Personnellement, je trouve que le debuggeur qui se rapproche le plus de celui de VC++ en terme de simplicité est celui d'Eclipse. Mais j'ai aussi certains problèmes avec cet IDE et pas juste en C++ mais en Java aussi...
J'utilise geany sous Linux qui est très légé et ne demande pas l'installation de 1000 paquets. Malheureusement, il ne comporte pas de debugger intégré. J'utilise pour ça gdb qui est un debugger en ligne de commande. Pas aussi simple mais efficace.

C++ (@++)<!--
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
12 oct. 2008 à 16:10
Il y a aussi xxgdb et KDbg qui ajoutent une interface graphique à gdb si ça t'intéresse.

C++ (@++)<!--
0
thedarkkillerz Messages postés 18 Date d'inscription samedi 3 juillet 2004 Statut Membre Dernière intervention 21 juin 2010
12 oct. 2008 à 20:48
Merci.
0
Rejoignez-nous