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

C Discussion :

livre sur C, que choisir?


Sujet :

C

  1. #1
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 787
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 787
    Par défaut livre sur C, que choisir?
    Bonjour,

    dans le cadre d'un cours de programmation système, je voudrais acquérir un livre sur C. J'ai 2 questions à vous poser face à ce problème:
    - existe t'il de telle différences entre C et C++ qui feraient qu'il faut impérativement acheter un livre qui ne traite que de C ou bien puis-je acheter un livre sur C++ même si la partie objet ne sera pas utilisée dans le cadre de ce cours
    - auriez-vous un livre à me conseiller sachant qu'il doit répondre aux critères suivants : le moin cher possible (10/15€), le moins de barratin possible (je cherche pas à ce qu'on m'epxlique ce qu'est une variable ni la différence entre le passage par valeur et par référence, juste le C), disponible partout, idem: si j'en ai besoin ce soir (et c'est le cas) je peux passer dans une fnac ou autre et etre quasi certain de le trouver.

    Merci de votre aide

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par cladsam
    - existe t'il de telle différences entre C et C++ qui feraient qu'il faut impérativement acheter un livre qui ne traite que de C ou bien puis-je acheter un livre sur C++ même si la partie objet ne sera pas utilisée dans le cadre de ce cours
    Si tu veux apprendre le C, achète un livre sur le C, pas sur le C++. D'ailleurs les livres qui commencent par apprendre le C quand l'objectif est d'apprendre le C++ sont au mieux depasse, au pire mauvais.

    - auriez-vous un livre à me conseiller sachant qu'il doit répondre aux critères suivants : le moin cher possible (10/15€), le moins de barratin possible (je cherche pas à ce qu'on m'epxlique ce qu'est une variable ni la différence entre le passage par valeur et par référence, juste le C), disponible partout, idem: si j'en ai besoin ce soir (et c'est le cas) je peux passer dans une fnac ou autre et etre quasi certain de le trouver.
    Je n'en connais pas le prix mais Kernighan et Richie, The C Programming Language est vraisemblablement ce qui correspond le mieux au reste de ta description.

  3. #3
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par cladsam
    - auriez-vous un livre à me conseiller sachant qu'il doit répondre aux critères suivants : le moin cher possible (10/15€), le moins de barratin possible (je cherche pas à ce qu'on m'epxlique ce qu'est une variable ni la différence entre le passage par valeur et par référence, juste le C), disponible partout, idem: si j'en ai besoin ce soir (et c'est le cas) je peux passer dans une fnac ou autre et etre quasi certain de le trouver.
    Les meilleurs livres sur le C et le C++
    Si tu veux un livre de référence tu peux t'arrêter au deux premiers mais si tu veux vraiment le minimum (en gros juste le prototype des fonctions avec leur rôle), je te conseille le C - précis & concis qui rentre dans ton budget et qui est vraiment bin fait

  4. #4
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 787
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 787
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Si tu veux apprendre le C, achète un livre sur le C, pas sur le C++. D'ailleurs les livres qui commencent par apprendre le C quand l'objectif est d'apprendre le C++ sont au mieux depasse, au pire mauvais.
    Ok merci du conseil, simplement je vex apprendre le C dans le cadre de cours mais je fais du dev objet et je n'exclue pas l'apprentissage du C++ par la suite d'ou la question

    Citation Envoyé par Jean-Marc.Bourguet
    Je n'en connais pas le prix mais Kernighan et Richie, The C Programming Language est vraisemblablement ce qui correspond le mieux au reste de ta description.
    Helas ca ne rentre pas dans le budget (genre 40€) mais MERCI

    Citation Envoyé par gege2061
    Les meilleurs livres sur le C et le C++
    Si tu veux un livre de référence tu peux t'arrêter au deux premiers mais si tu veux vraiment le minimum (en gros juste le prototype des fonctions avec leur rôle), je te conseille le C - précis & concis qui rentre dans ton budget et qui est vraiment bin fait
    j'avais consulté la page des critiques de livre (première chose que j'ai faite) mais aucun ne repondait à mes attentes, C précis et concis semble être exactement ce que je recherche je pense que je vais acheter celui la

    MERCI BEAUCOUP A VOUS 2

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par cladsam
    dans le cadre d'un cours de programmation système, je voudrais acquérir un livre sur C. J'ai 2 questions à vous poser face à ce problème:
    - existe t'il de telle différences entre C et C++ qui feraient qu'il faut impérativement acheter un livre qui ne traite que de C ou bien puis-je acheter un livre sur C++ même si la partie objet ne sera pas utilisée dans le cadre de ce cours
    C-only. C et C++ sont des langages différents.

    - auriez-vous un livre à me conseiller sachant qu'il doit répondre aux critères suivants : le moin cher possible (10/15€), le moins de barratin possible (je cherche pas à ce qu'on m'epxlique ce qu'est une variable ni la différence entre le passage par valeur et par référence, juste le C), disponible partout, idem: si j'en ai besoin ce soir (et c'est le cas) je peux passer dans une fnac ou autre et etre quasi certain de le trouver.
    Un vrai tuto de C (français) :

    http://www.linux-kheops.com/doc/ansi...ion_ANSI_C.htm

    Un vrai livre de C (anglais)

    http://publications.gbdirect.co.uk/c_book/

  6. #6
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Je pense que c'est plus quelque chose dans ce genre la que le PO recherche : C Standard Library

  7. #7
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 787
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 787
    Par défaut
    Enf iat les 2 donc meric a vous 2, les prototypes de fonctiosn mais aussi la syntaxe puisque je ne fais ni C ni C++.

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par cladsam
    Enf iat les 2 donc meric a vous 2, les prototypes de fonctiosn mais aussi la syntaxe puisque je ne fais ni C ni C++.
    Euh, si tu penses que le langage C se résume à la syntaxe et aux fonctions, tu te trompes lourdement.


  9. #9
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 787
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 787
    Par défaut
    Je pense pas que ce soit la peine de me mettre un truc de ce style comme si j'apprenais à développer. Je sais ce qu'est la mémoire, je sais ce que sont des pointeurs, je sais coder proprement. Je ne vais pas faire de catastrophe sous prétexte que je ne maîtrise pas le langage et je sous estime aucunement ses possibilités.
    Je n'ai pas non plus la prétention de l'assimiler avec les quelques données que j'obtiendrai en ayant que la syntaxe car je sais que les subtilité d'un langage ca dépasse le fait de savoir taper 2 lignes de code et les compiler.

    Bref je ne suis pas un novice et je ne cherche pas une lecon de moral.
    Seulement je n'apprends le langage que dans le cadre d'un cours qui vient se greffer parmis d'autre cours que je prends par correspondance hors de mon temps de travail. Je me contenterai donc du strict minimum au risque de passer à côté de plein de choses car il n'y a que 24H par jours...

  10. #10
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut
    Si je peux me permettre, moi j'aurai un petit livre sympas à te conseiller, c'est : la langage C dans les éditions: le tout en poche il coute seulement 10 euros, et t'apprend le C dans sa globalité sans pour autant se perdre dans les détails, c'est bien pour débuter à mon avis...

  11. #11
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 787
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 787
    Par défaut
    Pour sûr que tu peux te permettre. Pour l'instant je trouve que ce que j'ai trouvé de mieux c'est le lien que m'a donné Emmanuel Delahaye , celui ou il y a écrit "un vrai livre".
    Ca me semble très complet et comme finallement la partie programmation je ne la fait que lorsque je suis devant l'écran (cad je ne prends pas le bouquin de C pour le lire sans ordi devant moi), je crois que je vais peut-etre me raviser pour ce genre de technique, c'est un peu moins agréable pur l'oeil mais ca va aussi vite, c'est complet et comme c'ets gratuit, ca rentre necessairement dans le buget

    merci à vous tous

  12. #12
    Membre Expert
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Par défaut
    Honnêtement, le "C précis et concis" possède un gros défaut : il est trop concis (donc incomplet) et pas précis du tout (donc faux, surtout le paragraphe concernant les conversions de pointeurs à pointeurs).

    Tu dis que tu sais programmer, et je te crois. Mais ce que dit Emmanuel est on ne peut plus vrai : le C est un langage surpuissant si il est ENTIÈREMENT MAÎTRISÉ, mais peut se révéler être une vraie horreur si il est appris de façon incomplète.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    #include <stddef.h>
    #include <assert.h>
     
    #define N 120 /* N est la traille d'un vecteur */
     
    /* du code */
     
    size_t i = 0;
     
    while((i - N) < 0)
    {
        printf("Element numero %d : %d\n", i, vecteur[i]);
        i ++;
    }
    Devine ce que fait ce code.

  13. #13
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Par défaut
    Citation Envoyé par InOCamlWeTrust
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    #include <stddef.h>
    #include <assert.h>
     
    #define N 120 /* N est la traille d'un vecteur */
     
    /* du code */
     
    size_t i = 0;
     
    while((i - N) < 0)
    {
        printf("Element numero %d : %d\n", i, vecteur[i]);
        i ++;
    }
    Devine ce que fait ce code.
    il ne compile pas
    bien deviné ?

  14. #14
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 787
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 787
    Par défaut
    Qu'on soit bien clairs, je n'ai jamais remis en question ce qu'à dit Emmanuel mais développer je fais 8H/jours au boulot. Je prends 5 cours /semestre au CNAM hors de mon temps de travaiL.
    Pour moi le C intervient dans une de ces matières la programmation système pour illustrer les cours sur prog système.
    Je n'ai donc que très très très peu de temps pour l'apprendre et je suis conscient que lorsque j'aurai fini ce cours je ne connaitrai pas 1% des capacités du langage mais ce n'est pas mon but je n'en ai pas le temps...
    Quant à ton code et sachant que j'ai débuté hier soir avec le C , je dirais que s'il compile ( vecteur déclaré et initialisé),
    il affiche :

    Element numéro 0 : le premier (indice 0) élément du tableau vecteur

    .....

    Element numéro 119 : le 120 ème élément du tableau vecteur.


    Sous réserve que size_t soit compatible avec les types numériques ce que j'ignore... pourquoi il y a une autre subtilité?

  15. #15
    Membre Expert
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Par défaut
    Je voulais juste parler du schéma de boucle...d'ailleurs, il faudrait enlever les commentaires de la ligne du #define... ça craint sinon !

  16. #16
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 408
    Par défaut
    C'est vrai que cette condition est beaucoup moins explicite que (i < N)... D'ailleurs, pour ça, j'aurais typiquement pris une boucle for...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  17. #17
    Membre Expert
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Par défaut
    Citation Envoyé par cladsam
    Sous réserve que size_t soit compatible avec les types numériques ce que j'ignore... pourquoi il y a une autre subtilité?
    Ben ouais !

    Manque de pot, size_t est l'un des types les plus utilisés en programmation système : c'est un type non signé (en général, le plus long de la machine), alors que 120 est un entier signé... la conversion est donc effectuée en entier non signé et donc la condition du while() n'est JAMAIS vérifiée... en gros ce code ne fait rien.

    Des subtilités comme celles-ci, tu en as à la pelle en C.

  18. #18
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 787
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 787
    Par défaut
    Citation Envoyé par InOCamlWeTrust
    Ben ouais !

    Manque de pot, size_t est l'un des types les plus utilisés en programmation système : c'est un type non signé (en général, le plus long de la machine), alors que 120 est un entier signé... la conversion est donc effectuée en entier non signé et donc la condition du while() n'est JAMAIS vérifiée... en gros ce code ne fait rien.

    Des subtilités comme celles-ci, tu en as à la pelle en C.
    Oui mais la je vois pas trop ce que c'est censé m'apporter? Je l'ai dit 3 fois au dessus je ne connais pas le langage et c'est pas parceque ton exemple le prouve que ca changera quoique ce soit au fait que je devrai me contenter d'en apprendre seulement une partie : celle dont j'aurai besoin pour mes cours et le but de ces cours n'est pas de faire de moi un spécialiste C...

    Tu sais des exemples de code ou les gens qui ne maitrisent pas parfaitement un langage ne sauront pas dire comment il va réagir, n'importe qui peut en trouver dans un langage qu'il maitrise.

    Est-ce à dire que les autres ne peuvent pas du tout écrire de code dans ce langage?

  19. #19
    Membre Expert
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Par défaut
    Tu fais ce que tu veux. Je ne suis pas ici pour me battre ni pour m'engueuler avec les autres.

    Je voulais simplement te montrer que l'on peut assez facilement en C écrire du code qui bugue.

    On peut parfaitement écrire du code C qui compile et qui marche sans en être un expert, à ceci près que l'on court toujours le risque d'écrire LA ligne de code qui plante et que l'on ne saura pas correctement traiter.

    De toute façon, je trouve très bête le fait de ne pas vouloir approfondir "à fond" le C, et ce pour deux raisons :

    1- le C est extrêmement utilisé
    2- c'est un langage minuscule (comparé au C++, à Java, à Objective Caml... et autres) : il suffit, comme le précise Emmanuel, 6 mois (à tout péter) pour bien connaître le langage.

  20. #20
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 787
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 787
    Par défaut
    Non attend on se comprend mal!
    Moi j'aimerais ENORMEMENT approfondir le C. Je suis conscient du fait que c'est super puissant et que ca restera longtemps très utilisé. C'est pas par faute de volonteé mais par faute de temps que je me contente du strict minimum et je n'exclue absolument pas de l'apprendre REELLEMENT lorsque j'aurai fini mes études.

    Tu vois je serais seulement étudiant je me plongerais avec rage dans l'étude et je serais super heureux d'apprendre toutes les subtilités qui font la différence entre celui qui développe avec ce langage et celui qui bidouille par nbecessité. Mais la je bosse au boulot sur un autre langage qui demande un investissement de temps (ABAP) et j'ai les cours sur mon peu de temps libre, la démarche n'est donc pas la meme.

    je ne cherche pas moi non plus la dispute et je suis très content que toi, Emmanuel Delhaye et les autresm 'apportiez vos conseils et ce, meme si j'emploi parfois un ton un peu bourru pour vous répondre

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/10/2013, 23h20
  2. De 2 livres sur Android lequel choisir ?
    Par Kelevra dans le forum Android
    Réponses: 9
    Dernier message: 09/11/2010, 19h41
  3. Réponses: 2
    Dernier message: 15/06/2010, 10h07
  4. [SGBD/ Développement] Que choisir sur quels critères ?
    Par damou2004 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 24/01/2006, 18h17
  5. [Livres]Que choisir pour débuter
    Par newyou dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 28/10/2005, 17h11

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