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 débutant pour apprendre entièrement le langage c


Sujet :

C

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 120
    Par défaut Livre débutant pour apprendre entièrement le langage c
    Bonjour,

    je cherche un livre débutant pour apprendre la langage c dans sa globalité, j'entends par là, l'entièreté de son vocabulaire et de sa grammaire, qu'il soit écrit en français ou en anglais, français de préférence, pouvez-vous me conseiller ?

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 325
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 501
    Par défaut
    Bonjour et bienvenue,

    Le K&R reste toujours une référence : http://www.dunod.com/informatique-mu...t/le-langage-c

  4. #4
    Membre Expert
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Bonjour et bienvenue,

    Le K&R reste toujours une référence : http://www.dunod.com/informatique-mu...t/le-langage-c
    Bonjour,
    Il reste une référence surtout historique. Les exemples qu'il donne ne sont plus conformes à la norme C11, et ce dès la page 7 avec :
    Nom : k&r.png
Affichages : 254
Taille : 87,8 Ko

    main doit être prototypé int main(void). L'omission du type de retour qui par défaut est int est une pratique obsolète, et même si ce n'est pas une obligation stricte dans la définition d'une fonction, void doit être utilisé dans la liste des paramètres pour indiquer qu'il n'y en a pas, une liste vide indique que le nombre est inconnu et précisé plus tard ce qui n'aide pas le compilateur à émettre des warnings en cas de mauvaise utilisation. On peut aussi noter l'omission du return en fin de fonction, qui même si elle est normalisée dans le cas de main, n'est pas forcément à mon sens une bonne pratique.

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 120
    Par défaut
    Picodev, dans ce cas, vers quel ouvrage me tourner ?

  6. #6
    Membre Expert
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Par défaut
    Malheureusement je ne pourrais sans doute pas t'indiquer une bonne source. Le problème étant que mon apprentissage a commencé à la fin des années 80 et il continue encore maintenant. Je viens d'une époque où le K&R était effectivement une référence. Puis le langage a évolué régulièrement tous les 10 ans environs (C89/C90 → C99 → C11 → C2x ???). Évolutions que j'ai suivies et vécues. Je n'ai jamais eu à apprendre C11 par exemple car je connaissais le «C d'avant» et je me suis mis à jour en lisant/picorant la norme, consultant des pages internet en parlant, testant avec les compilateurs et les libc implémentant les nouvelles fonctionnalités au fur et à mesure.

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 120
    Par défaut
    Si je programme en une autre norme que la 11 le programme ne fonctionnera pas ?

  8. #8
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par défaut
    Il fonctionnera bien entendu (on n'est pas chez Microsoft chez qui l'on jette tous les programmes de plus de 3 ans d'âge.. ), mais selon le comportement stipulé par la norme utilisée et le degré de conformité de ton compilateur à cette dernière. La norme reflète les avancées technologiques et l'expérience acquise au moment de sa publication, il est donc naturel de privilégier la dernière puisqu'on ne programme plus en 2016 comme en 1989.

    En C moderne et sauf contre-indications imposées par le compilateur, le système ou l'architecture matérielle cible, il est d'usage de respecter au minimum C99. C'est notamment la norme utilisée par de gros projets qui tournent à peu près partout comme FFmpeg, donc pas d'inquiétude à avoir. Il faut aussi savoir que les compilateurs et les libc implémentent souvent une partie seulement des recommandations (la dernière fois que je me suis renseigné, seul Pelles C prenait en charge C11 entièrement).

  9. #9
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 120
    Par défaut
    Donc K&R est le meilleur choix que je puisse faire ?

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    Tant que tu n'oublies pas les errata qui vont avec, probablement oui.

    Attention: Si jamais tu tentes de l'acheter d'occasion, vérifie bien qu'il s'agit de la seconde édition (également surnommée K&R2), et non la première.

    La bonne formule, c'est K&R2 + errata, du moins pour l'instant...
    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.

  11. #11
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par défaut
    Si tu étais un robot, le « meilleur » choix serait d'apprendre à utiliser le langage à partir de la norme officielle. Mais tu seras devenu dingue et/ou mort d'ennui avant d'avoir atteint la page 100.

    Il n'y a pas de « meilleur » choix, ce genre de chose est toujours subjectif. C'est comme pour s'informer, il n'y a pas de « meilleure » source. Il faut manger à plusieurs râteliers et composer un résultat, se faire une opinion.

    Personnellement, je n'ai pas de livre en version imprimée à te recommander. Je trouve la plupart des livres de programmation papier soit mauvais, soit complètement dépassés, la technologie évoluant trop vite pour ce médium (lire cet article de Jeff Atwood sur le sujet). J'aime beaucoup feuilleter un bouquin à titre personnel et il m'est arrivé de commander des versions papier de documentation et référence techniques, pour le confort d'utilisation. Le résultat est qu'ils se sont tous vus devenir obsolètes au bout de quelques mois et transformés en collecteurs de poussière. Sers-toi du Net.

    Voici ma recommandation personnelle pour apprendre le langage C moderne : Learn C The Hard Way de Zed A. Shaw. Tu auras également besoin de références en ligne pour la bibliothèque standard et peut-être les appels systèmes UNIX.

    Enfin n'oublie pas que connaître le C, ce n'est pas savoir programmer en C. Il te faudra quelques jours/semaines pour le premier et plusieurs années pour le second.

  12. #12
    Membre Expert
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Par défaut
    Citation Envoyé par Matt_Houston Voir le message
    En C moderne et sauf contre-indications imposées par le compilateur, le système ou l'architecture matérielle cible, il est d'usage de respecter au minimum C99. C'est notamment la norme utilisée par de gros projets qui tournent à peu près partout comme FFmpeg, donc pas d'inquiétude à avoir. Il faut aussi savoir que les compilateurs et les libc implémentent souvent une partie seulement des recommandations (la dernière fois que je me suis renseigné, seul Pelles C prenait en charge C11 entièrement).
    clang et gcc implémentent tous deux aussi C11, mais le problème vient du fait que la norme C11 décrit aussi bien le compilateur que la bibliothèque standard qui ne sont pas produits par les mêmes développeurs. Pour le C il faudrait parler du couple compilo/libc utilisé. gcc5/glibc2.17 sur GNU/Linux implémente à mon avis C11 mieux que mingw-gcc5/MSVCRT sur Win10 …

  13. #13
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par défaut
    ...et moins bien que gcc / musl. Remarques tout à fait pertinentes.

  14. #14
    Membre Expert
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Par défaut
    Suite à cette discussion j'ai un peu regardé d'autres forums. Une référence qui revient souvent est un livre en anglais (non encore traduit en français) qui a pour ambition de faire apprendre le C en prenant directement C11 comme référence. J'ai e-feuilleté rapidement la troisième édition et il semble tenir ses promesses. En revanche, n'étant pas pédagogue pour un sou, je ne peux pas évaluer la qualité de l'enseignement.
    Programming in C 4th edition, Stephen G. Kochan (sur amazon)

Discussions similaires

  1. Réponses: 29
    Dernier message: 11/04/2016, 08h40
  2. Réponses: 0
    Dernier message: 19/02/2016, 16h48
  3. [CMMi] livres recommandés pour apprendre CMMI
    Par loicmidy dans le forum Qualité
    Réponses: 4
    Dernier message: 19/10/2015, 08h57
  4. Réponses: 6
    Dernier message: 03/04/2010, 20h27
  5. Un livre/Un PDF pour apprendre le langage Delphi
    Par Invité dans le forum EDI
    Réponses: 14
    Dernier message: 24/08/2009, 22h53

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