Noob et C/C++ [Résolu]

Signaler
Messages postés
18
Date d'inscription
samedi 3 juillet 2004
Statut
Membre
Dernière intervention
21 juin 2010
-
Messages postés
18
Date d'inscription
samedi 3 juillet 2004
Statut
Membre
Dernière intervention
21 juin 2010
-
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

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
"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++ (@++)<!--
Messages postés
18
Date d'inscription
samedi 3 juillet 2004
Statut
Membre
Dernière intervention
21 juin 2010

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 )?
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
"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++ (@++)<!--
Messages postés
18
Date d'inscription
samedi 3 juillet 2004
Statut
Membre
Dernière intervention
21 juin 2010

"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..
Messages postés
18
Date d'inscription
samedi 3 juillet 2004
Statut
Membre
Dernière intervention
21 juin 2010

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?
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
"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++ (@++)<!--
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Il y a aussi xxgdb et KDbg qui ajoutent une interface graphique à gdb si ça t'intéresse.

C++ (@++)<!--
Messages postés
18
Date d'inscription
samedi 3 juillet 2004
Statut
Membre
Dernière intervention
21 juin 2010

Merci.