IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

C ou C++ ? Lequel choisir ?


Sujet :

Langages de programmation

  1. #21
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 2
    Points : 6
    Points
    6
    Par défaut Une remarque d'ordre pratique...
    Citation Envoyé par Luc Hermitte
    Non, le C n'est pas un sous-ensemble du C++ -- y a pas de VLA en C++ p.ex.
    De plus, pour faire des choses similaires, en C++ on va éviter des continuer de se ballader avec les sources d'erreurs qui viennent du C. On utilise les abstractions dédiées (ou alors on aime débugguer et on n'engage que des stagiaires surdoués ou rigoureux) => string, vectors, passage d'arguments par référence, ...

    Bref, le C++ a cessé d'être le "C with classes" il y a longtemps maintenant. Inutile de trainer ce fardeaux et de l'imposer aux débutants qui ont bien d'autres choses intéressants à apprendre lors des premières leçons que la manipulation des pointeurs.

    (désolé si je radote)
    PS: la lecture de la mini FAQ sur le site de Stroustrup est des plus interressante.
    J'en conclue qu'il existe des compilateurs C++ qui n'acceptent pas certains codes source écrits en langage C.
    Pourriez-vous citer un exemple de compilateur ?
    Avec mes remerciements, Frédéric (Telecoms engineer. ENSTB-1988.).

  2. #22
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Tous, y compris GCC, refuseront les VLA. Ceci dit dit, pour GCC (en mode C++ -> g++) il faut explicitement demander à s'en tenir au C++98 et ne rien incorporer du C99 -> option "-pedantic".

    Bjarne Stroustrup détaille mieux des petites différences entre le C et la partie du C présente en C++, comme les VLA, sur son site.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #23
    Membre habitué
    Inscrit en
    Novembre 2002
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 120
    Points : 125
    Points
    125
    Par défaut
    J'en conclue qu'il existe des compilateurs C++ qui n'acceptent pas certains codes source écrits en langage C
    Plein d'exemples:
    la syntaxe K&R est dépreciée, et les compilateurs qui la supporte (à tort) en font des warnings:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    main(argc, argv)
      int argc;
      char* argv[];
    {
    }
    une fonction déclarée avec () est une fonction qui peut avoir n'importe quel nombre d'arguments, alors que c'est une fonction sans argument en C++:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    /* Prototype */
    int fonction();
    
    /* Définition */
    int fonction(a1, a2)
      int a1, a2;
    {
    }
    En C++, si le prototype est dans un fichier d'en-tête et la définition dans un fichier séparé, ce code peut cacher de très mauvaises surprises à l'édition des liens...

    J'en ai pas d'autres en tête, mais la liste est longue...

  4. #24
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    faut suivre l'évolution de l'informatique dans le bon sens!
    On aprend le C puis on passe doucement a une philosophie orienter objet avec le C++!
    de toute facon la connaisance de ces deux langages est bénéfique alors autant les apprendres dans le bon sens!
    La liberté est le virus le plus contagieux connu de l'homme

  5. #25
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Citation Envoyé par Warrior03
    faut suivre l'évolution de l'informatique dans le bon sens!
    <perplexe>
    Et donc on commence par l'assembleur, cobol, fortran, B, ..., avant de regarder le C... :-/
    </>
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  6. #26
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1
    Points : 1
    Points
    1
    Par défaut C ou C++? lequel choisir?
    bonjour all ; je vois que vous vous prenez la tet pour rien moi aussi je sui un debutant en prog je vais bien tot commencer d abord . j ai demandé a un pote qu estcequi pourraitme conseiller comme langage et il m a repondu tu veux faire quoi comme type de porgrammation ben je lui ai repondu programmation systeme ben il m a dis apprends le C , je lui ai demander pour quel raison le C ? et il m a repondu : selon ce que tu veux faire ya different langage donc voila apprends un langage en raport ac ce que tu veux faire moi la je vais m ht un bouquin sur le C donc voila
    j espere que sa t aider allez a++
    newb-prog

  7. #27
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Le troll n'est pas mort je vois.

    À la recherche de patterns et autres théories formalisées que j'avais laissées de côté, je suis retombé sur ce petit article à méditer : http://www.objectmentor.com/resource...tillUsingC.pdf sur object mentor (très bon site, que je vous conseille vivement). A ruminer avec le draft sur les performances du C++ (dispo sur le site du commité de normalisation) et l'article où Stroustrup explique pourquoi le C++ doit être enseigné comme un nouveau langage.

    PS: @ newbs-prog -> pas de SMS/chat-speaking ici STP. Les fautes d'orthographe et de grammaire sont pardonnables, mais le chat-speaking est particulièrement irritant. Comme j'aime à le répéter, 357-c3 2u3 j'3cri7 3n 31i73 d'480rd ?
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  8. #28
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Points : 189
    Points
    189
    Par défaut
    bon, d'accord, chaque language doit etre en accord avec ce qu'on decide de faire.

    mais prenons un cas concret.
    pour faire un programme , type xmms (player mp3), ou tout autre programme de "fonctionnement " on va dire. vaut mieux le c ou le c++

    en fait ce que j'aimerais savoir, c'est non pas ce qu'apporte le c++ par apport au c. masi quelle en est l'utilité. je veux dire, enormement de programme sont encore ecrit en c, ce qui veux dire que que la poo n'estt pas une utilité. En fait, j'aimerais ssavoir pour quelle raison il faudait utilisé se principe, dans quelle cas???

    autre chose, toutes les librairies c, sont elle compatible avec les librairies c++?? je dit ca en autre pour la gestion de fenetre (Qt) ou sdl (je sais qu'elle est) mais touteess les librairies ne sont pas d'offices compatibles c et c++???

    merci

    a++

  9. #29
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Un programme plus simple à écrire, plus simple à maintenir et plus robuste pour aucune perte de performance significative me parait être un bon ensembe d'"utilités". Pas que cela ne soit pas possible en C, juste que cela demande plus d'efforts et donc induit plus de risques. De plus, le C n'a pas grand chose d'utile que le C++ n'a pas.

    Les bibliothèques C sont utilisables depuis tout langage quelque soit le compilateur avec lequel elle ont été compilées. C'est en ce qui me concerne un des deux derniers intérêts du C (p/r au c++). L'autre étant l'absence de compilateur C++ correct sur certaines plateformes type embarqué.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  10. #30
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : Octobre 2005
    Messages : 141
    Points : 135
    Points
    135
    Par défaut
    Je vais passé pour un gros fermé d'esprit mais pas grave, je trouve que le C, c'est le meilleur langage que j'ai utilisé jusqu'a présent (j'ai utilisé le VB, C++ (beurk), Ruby (que des objets ) et le BASIC).

    Je te conseille le C, c'est sympa, libre (pas en droits mais en écriture) et c'est plutôt simple (pour les bases j'entends).

    Kr00pS

  11. #31
    Membre averti

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2004
    Messages : 220
    Points : 322
    Points
    322
    Par défaut
    C++ (beurk), Ruby (que des objets )
    on dirait que tu n'en a pas contre le C++ en particulier, mais contre la POO ?
    "Une méthode fixe n'est pas une méthode" (Proverbe chinois)

  12. #32
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Je dirais, pourquoi choisir l'un ou l'autre.

    Le C, et le C++, en dehors d'être très compatibles, sont deux facettes d'une même pièce: la programmation.

    Programmation prcédural d'un côté, programmation objet de l'autre en complément.

    Faire les deux me paraît indispensable.

  13. #33
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Choix
    comme ce qui a été dit par beaucoup jusque là
    le C et le C++ sont différents dans la manière de coder et correspondent à des attentes différentes des programmeurs.

    Je suis étudiant en informatique, c'est peut-être le professionalisme qu'on tente de m'inculquer qui influence mon avis,
    mais je ne trouve pas que l'assembleur ou le C soient moins interressants

    J'ai appris énormément avec l'assembleur que je comprenais mal en faisant du C au début,

    Quant aux abstractions et aux langages de plus hautes couches, quand on veut faire des applications sans se soucier de la machine c'est plus avantageux c'est sur!

    Mais par exemple en informatique industrielle, ou les machines doivent réagir de façon immédiate, un langage de bas niveau est utile, (je sais que l'assembleur aujourd'hui n'est plus très interressant) mais le C est extremement rapide et convient mieux à certaines taches

    Pour conclure je dirais que si c'est juste pour faire de la programmation sans se soucier du reste, apprendre un langage haut niveau est interressant

    Mais pour un bon informaticien qui comprend ce qu'il fait , mieux vaut commencer par un langage bas niveau pour comprendre ce qu'il se passe

    apprendre tout de suite le C++ n'est pas toujours idéal pour regler par exemple les erreurs du genre "erreur de segmentation"!

  14. #34
    Inactif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 219
    Points : 227
    Points
    227
    Par défaut Bonjour Insidious
    Moi je propose le C++, parce que je suis sur que tu veux coder des jeux ou autrechose avec l'utilisation de pointeur. Bref, le C va surement disparaître d'ici quelques années ou être encore moins populaire...

    Bonne chance


    http://c.developpez.com/
    Alex

  15. #35
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par alexandrebergercyr
    Moi je propose le C++, parce que je suis sur que tu veux coder des jeux ou autrechose avec l'utilisation de pointeur. Bref, le C va surement disparaître d'ici quelques années ou être encore moins populaire...


    J'espère que tu ne crois pas réellement ce que tu dis...

    Il est certain que le C n'est pas un langage à la mode que les boîtes de consultants et autres "experts" en informatique pronent. Mais il est également vrai que dans certains domaines, les contraintes imposent l'utilisation de langage dont la compilation est proche du code source... pour les certifications Et le C++ et nombreuses formes de polymorphisme et d'héritage rend ce travail difficile (même si les travaux actuels sur systemC tendent à contredire ce que j'avance)
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  16. #36
    Membre chevronné
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Points : 2 004
    Points
    2 004
    Par défaut
    Rappellons aussi que beaucoup de microprocesseurs se programment en C, que le noyau de Linux est en C, qu'il est encore enseigné dans la grande majorité des formations informatiques...

    Le C est un langage qui mettra un temps fou à disparaître. Certes il n'est pas encore à son apogée, mais il ne se porte pas si mal.

    Et je ne vois pas le rapport entre le comparatif C/C++ et les pointeurs... On peut en utiliser moins en C++, mais ils sont toujours présent.
    "En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
    Application :

    ainsi qu'à regarder la avant de poser une question.

    La rubrique Perl recrute, contactez-moi.

  17. #37
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 347
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 347
    Points : 20 347
    Points
    20 347
    Par défaut
    Citation Envoyé par strategos
    Bonjour à tous
    J'aimerais apprendre la prog en C ou C++ mais je ne sais pas quel langage choisir (ils ont peu de différence parait-il). Je souheterais faire de la programmation réseau et de la prog sur Linux. Voila merci de tous vos conseils à venir @+
    il ya un débat là-dessus,on ne va pas recommencer.
    Comme il a été dit maints microcontroleurs ne peuvent que se programmer en C pur.
    C'est un langage considéré au dessus de l'assembleur ( avec les pointeurs)
    Donc à réserver plutot à programmation système ou info industrielle.
    Par contre, pour faire tout un projet par exemple de gestion compta ou bien un jeu vidé il est préférable de piger les concepts et méchanismes de POO ( je rejoins Luc Hermitte ,apprendre les rudiments de C++).
    Et puis C++ se trouve un peu en concurrence avec C# et Java maintenant c'est pour cela qu'il vaut mieux maitriser un peu la POO

    Citation Envoyé par Woufeil
    Le C est un langage qui mettra un temps fou à disparaître. Certes il n'est pas encore à son apogée, mais il ne se porte pas si mal.
    .
    La programmation Linux système c'est en C pur et dur.
    Et jusqu'à présent celle de Windows également ( base win32 ).Sauf API spécifiques qui utilisent COM et qui est objet.
    Citation Envoyé par Insidious
    apprendre tout de suite le C++ n'est pas toujours idéal pour regler par exemple les erreurs du genre "erreur de segmentation"!
    justement la STL est faite pour cela cher ami
    std::string évite les confusions et erreurs qu'on a avec char * cf exemple de Luc

  18. #38
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par gorgonite
    Et le C++ et nombreuses formes de polymorphisme et d'héritage rend ce travail difficile (même si les travaux actuels sur systemC tendent à contredire ce que j'avance)
    Tu as des pointeurs sur l'utilisationde systemC pour autre chose que la conception de hard ou du co-design?
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  19. #39
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Points : 2 844
    Points
    2 844
    Par défaut
    Citation Envoyé par strategos
    Bonjour à tous
    J'aimerais apprendre la prog en C ou C++ mais je ne sais pas quel langage choisir (ils ont peu de différence parait-il). Je souheterais faire de la programmation réseau et de la prog sur Linux. Voila merci de tous vos conseils à venir @+
    Commence par le C++, comme cela tu ne prendras pas de mauvaises habitudes et tu ne tenteras pas de faire du C (mauvais) en C++ (qui n'est pas fait pour ça).
    On peut très bien faire de la prog sous linux en C++. Y'a pas si lgtps que cela j'ai vu passer sur un autre site une dépêche d'un gars qui avait écrit un pilote d'imprimante en C++...
    Bon, ceci étant dit j'espère que tu as de bonnes bases en programmation car le C++ c'est pas vraiment un langage simple...

  20. #40
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Points : 2 844
    Points
    2 844
    Par défaut
    Citation Envoyé par Woufeil
    Rappellons aussi que beaucoup de microprocesseurs se programment en C
    Euh...En général on utilise plutot l'asm pour ce genre de délicatesse. Il est vrai que le C s'interface très bien avec l'asm mais tout de même...

    Le C est un langage qui mettra un temps fou à disparaître. Certes il n'est pas encore à son apogée, mais il ne se porte pas si mal.
    Parce que tu crois vraiment qu'il disparaitra?

Discussions similaires

  1. VARCHAR & CHAR - comment savoir lequel choisir !?
    Par Thierry8 dans le forum Requêtes
    Réponses: 15
    Dernier message: 18/12/2005, 21h54
  2. Lequel choisir???
    Par t_om84 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 27/10/2004, 15h02
  3. Curseur et lock : Les différence & lequel choisir
    Par BilTCD dans le forum Access
    Réponses: 2
    Dernier message: 22/10/2004, 15h03
  4. [FEDORA] Lequel choisir entre Fedora i386 et x86 pour un xeon?
    Par Oberon dans le forum RedHat / CentOS / Fedora
    Réponses: 7
    Dernier message: 13/07/2004, 15h52
  5. [Conseil] Glut vs SDL, lequel choisir
    Par Mathieu.J dans le forum GLUT
    Réponses: 15
    Dernier message: 08/06/2004, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo