Conversion de c++ à c

khama3 Messages postés 3 Date d'inscription jeudi 10 novembre 2011 Statut Membre Dernière intervention 14 novembre 2011 - 13 nov. 2011 à 21:49
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 14 nov. 2011 à 11:00
saleut
j'en ai besoin de savoir s'il ya un ligiciel de conversion de c++ à c et s'il n y a pas q'elle sont les etapes a effectué en tenant compte q'on est entrein de compiler par un compilateur c++.
et merci.

8 réponses

cs_LA_Tupac Messages postés 305 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 janvier 2012 1
14 nov. 2011 à 00:20
saleut, si tu as un compilateur c++ pourquoi convertir du c++ en c ?
0
khama3 Messages postés 3 Date d'inscription jeudi 10 novembre 2011 Statut Membre Dernière intervention 14 novembre 2011
14 nov. 2011 à 05:31
salut, par ce que j'en ai besoin d'un programme procedurale nn pa d'un programme en notion de classe et objet et le programme c aussi sera converti en un autre langage suivant le travail demandé.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
14 nov. 2011 à 07:24
remontes tes manches plutot que de chercher a automatiser une tache non récurrente

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
cs_LA_Tupac Messages postés 305 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 janvier 2012 1
14 nov. 2011 à 09:12
+1
0

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

Posez votre question
cptpingu Messages postés 3835 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 1 novembre 2022 124
14 nov. 2011 à 09:50
1) Je rappelle que le C++ n'est pas un langage objet, mais un langage multi-paradigme. Donc si tu veux faire du procédural en C++, tu peux.
2) Il n'y a aucun moyen de transformer parfaitement du C en du C++. Certaines notions du C++ sont inexistantes en C.
3) Pourquoi vouloir ce genre de conversion ? Je rejoins l'avis général, c'est à toi de faire ce travail.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
khama3 Messages postés 3 Date d'inscription jeudi 10 novembre 2011 Statut Membre Dernière intervention 14 novembre 2011
14 nov. 2011 à 10:23
merci pour vos repenses, mais est ce que je peux savoir quel sont les etapes à effectuer pour passer d'un programme c++ à un programme c? quels sont les differances existantes pour faire une conversion manuel? et merci
0
cptpingu Messages postés 3835 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 1 novembre 2022 124
14 nov. 2011 à 10:54
Quelles sont les étapes pour passer du chinois à l'anglais ? De l'allemand à l'espagnol ?
Tu te rends compte qu'il faudrait des centaines de pages d'explication ?

La seule solution est de connaître le C et le C++. Pour ça, il y a de bon bouquins:
- http://images-eu.amazon.com/images/P/2744070033.08.LZZZZZZZ.jpg
- http://www.acceleratedcpp.com/images/largecover.jpg

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 43
14 nov. 2011 à 11:00
Bonjour,

Si tu veux linker une librairie C++ avec du C, tu peux faire une interface non objet :

j'ai une classe Foo avec le header suivant :
class Foo{
public:
  int a;
  Foo();
  void print();
};

et l'implémentation suivante :

#include 
#include "foo.hh"
Foo::Foo() : a(0) { }
void Foo::print(){
    std::cout << a << std::endl;
  }


je peux faire l'interface suivante :


#include "foo.hh"

extern "C" {

  void* mk(){ return new Foo(); }
  void print( void* a ){
    Foo *b = static_cast<Foo*>(a);
    b->print();
  }
}



et le programme c suivant :


extern void* mk();
extern void print( void*a);

int main(){
  print(mk());
  return 0;
}



pour compiler, il me suffit de faire :
gcc interface.o test.o foo.o -lstdc++

Bref, ces deux langages se linkent, c'est donc inutile de convertir le code.

Cordialement,

Maxime
0