Chercher un livre sur le C avec certains critères.
200 réponses
Francois
Bonjour à tous,
Je débute dans le C et personnellement j'apprends surtout avec les
livres. J'ai commencé "Livre du C premier langage" de Delannoy (je
précise que j'avais quand même des petites notions de programmations,
même si, à mon sens, j'étais [ et suis encore ? ] vraiment ce qu'on
appelle un débutant).
Je suis en train de lire le K&R (deuxième édition) qui est bien sûr
beaucoup plus difficile. C'est du concentré, mais quand on y regarde de
prêt, c'est quand assez précis et bien fait. Ceci étant, il y a des
choses qui ne me satisfont pas complètement.
Je trouve que ce livre à une approche trop éloignée de la machine
(comment une donnée est encodée ? comment se passe l'histoire du signed
ou unsigned du point de vue de la machine etc.). Je m'explique.
Bien sûr, le langage C est un langage abstrait de "haut niveau" qui se
doit (en principe) de ne pas faire référence à la machine. Donc c'est
normal qu'un livre sur le C ne parle pas (trop) des problèmes qui
dépendent de l'architecture. Ceci étant, j'aimerais savoir si un tel
livre existe malgré tout. Un livre qui expose le langage C et qui
n'hésite pas de temps en temps à parler de ce qui se passe dans la
machine (bien sûr, justement, ce qui se passe dépend de la machine et
n'est pas universel, mais le livre pourrait présenter les choses sur
seulement une architecture "classique" par exemple). Bon, si je pouvais
éviter les circuits électroniques et compagnie quand même, ça serait
bien. Qu'on me dise que "le complément à 2 fait que l'addition devient
plus simple pour l'ordinateur puisqu'il suffit de faire une addition
classique" me suffit amplement. Une preuve de cela en passant des
explications sur des circuits électroniques peut-être me serait un peu
indigeste.
Bref, j'espère avoir été clair sur cette sorte de compromis que je
recherche (existe-t-il ?). Vous pouvez aller voir cette discussion (où
mon pseudo est sisco)
La prochaine veuille faire preuve de plus de précision dans tes propos et veuille trouver les exemples adéquats.
Commence par balayer devant ta porte et te relire, juste histoire d'avoir des phrases completes...
candide
Non, c'est un petit coup de provoc assumé. Je n'en crois pas un mot : ou bien c'est délibéré
Oui, c'est ce que je dis.
Non, tu n'es pas très courageux et tu ne veux pas assumer tes propos. Je ne pense pas qu'il y ait la moindre part de provo dans ton propos, c'est bel et bien à prendre tel quel, en tous les cas c'est comme ça que je le comprends et il me semble que c'est suffisant.
Je n'ai jamais placé mes arguments à ce niveau mépris.
Susceptible ?
De mieux en mieux. Donc, si tu marches sur le pied de quelqu'un dans le métro, et que la personne dit "aïe", tu lui réponds : "Comme vous avez les pieds sensibles !".
M'enfin bon, s'il faut le redire, je le redis "un programmeur qui utilise des variables globales sans voir leur danger,
où-ai-je dis cela ?
c'est un programmeur du dimanche, un amateur".
Non, tu essayes d'édulcorer ton propos : assume et démontres ou excuse-toi. Ton jugement de valeur allait bien au-delà de cette histoire de variables globales. Il suffit de relire dans quel contexte tu as répondu cela.
Ceci dit, je suis moi même à les heures jardinier du dimanche, et je pense que tout horticulteur qui me verrai travailer refuserait de me confier ses plants.
Ce n'est pas parce que toi tu es un mauvais jardinier que je vais te laisser me parler de façon méprisante sans réagir.
M'enfin bon, là, on passe du fond à la forme... Si tu as encore des interrogations sur les variables globales, tu peux essayer de reformuler tes questions, mettre en exergue les contradictions que tu as pu voir dans les réponse. Je veux bien même m'abstenir de répondre si tu veux. Mais bon, Jean-Marc, Antoine, Marc E., et moi avons, chacun à sa manière, passé du temps à te présenter des arguments, que tu juges visiblement non convainquants...
Avant de donner une réponse, faudrait d'abord lire et comprendre la question.
Non, c'est un petit coup de provoc assumé.
Je n'en crois pas un mot : ou bien c'est délibéré
Oui, c'est ce que je dis.
Non, tu n'es pas très courageux et tu ne veux pas assumer tes propos. Je
ne pense pas qu'il y ait la moindre part de provo dans ton propos,
c'est bel et bien à prendre tel quel, en tous les cas c'est comme ça que
je le comprends et il me semble que c'est suffisant.
Je n'ai jamais placé mes arguments à ce niveau mépris.
Susceptible ?
De mieux en mieux. Donc, si tu marches sur le pied de quelqu'un dans le
métro, et que la personne dit "aïe", tu lui réponds : "Comme vous avez
les pieds sensibles !".
M'enfin bon, s'il faut le redire, je le redis "un programmeur
qui utilise des variables globales sans voir leur danger,
où-ai-je dis cela ?
c'est un programmeur du dimanche, un amateur".
Non, tu essayes d'édulcorer ton propos : assume et démontres ou
excuse-toi. Ton jugement de valeur allait bien au-delà de cette histoire
de variables globales. Il suffit de relire dans quel contexte tu as
répondu cela.
Ceci dit, je suis moi même à les heures jardinier du dimanche,
et je pense que tout horticulteur qui me verrai travailer
refuserait de me confier ses plants.
Ce n'est pas parce que toi tu es un mauvais jardinier que je vais te
laisser me parler de façon méprisante sans réagir.
M'enfin bon, là, on passe du fond à la forme...
Si tu as encore des interrogations sur les variables globales,
tu peux essayer de reformuler tes questions, mettre en
exergue les contradictions que tu as pu voir dans
les réponse. Je veux bien même m'abstenir de répondre
si tu veux. Mais bon, Jean-Marc, Antoine, Marc E., et moi
avons, chacun à sa manière, passé du temps à te présenter
des arguments, que tu juges visiblement non convainquants...
Avant de donner une réponse, faudrait d'abord lire et comprendre la
question.
Non, c'est un petit coup de provoc assumé. Je n'en crois pas un mot : ou bien c'est délibéré
Oui, c'est ce que je dis.
Non, tu n'es pas très courageux et tu ne veux pas assumer tes propos. Je ne pense pas qu'il y ait la moindre part de provo dans ton propos, c'est bel et bien à prendre tel quel, en tous les cas c'est comme ça que je le comprends et il me semble que c'est suffisant.
Je n'ai jamais placé mes arguments à ce niveau mépris.
Susceptible ?
De mieux en mieux. Donc, si tu marches sur le pied de quelqu'un dans le métro, et que la personne dit "aïe", tu lui réponds : "Comme vous avez les pieds sensibles !".
M'enfin bon, s'il faut le redire, je le redis "un programmeur qui utilise des variables globales sans voir leur danger,
où-ai-je dis cela ?
c'est un programmeur du dimanche, un amateur".
Non, tu essayes d'édulcorer ton propos : assume et démontres ou excuse-toi. Ton jugement de valeur allait bien au-delà de cette histoire de variables globales. Il suffit de relire dans quel contexte tu as répondu cela.
Ceci dit, je suis moi même à les heures jardinier du dimanche, et je pense que tout horticulteur qui me verrai travailer refuserait de me confier ses plants.
Ce n'est pas parce que toi tu es un mauvais jardinier que je vais te laisser me parler de façon méprisante sans réagir.
M'enfin bon, là, on passe du fond à la forme... Si tu as encore des interrogations sur les variables globales, tu peux essayer de reformuler tes questions, mettre en exergue les contradictions que tu as pu voir dans les réponse. Je veux bien même m'abstenir de répondre si tu veux. Mais bon, Jean-Marc, Antoine, Marc E., et moi avons, chacun à sa manière, passé du temps à te présenter des arguments, que tu juges visiblement non convainquants...
Avant de donner une réponse, faudrait d'abord lire et comprendre la question.
candide
In article <47dae9d7$0$7364$, candide wrote:
La prochaine veuille faire preuve de plus de précision dans tes propos et veuille trouver les exemples adéquats.
Commence par balayer devant ta porte et te relire, juste histoire d'avoir des phrases completes...
Tu es très inspiré ces temps-ci.
In article <47dae9d7$0$7364$426a74cc@news.free.fr>,
candide <c-candide@wanadoo.fr> wrote:
La prochaine veuille faire preuve de plus de précision dans tes propos
et veuille trouver les exemples adéquats.
Commence par balayer devant ta porte et te relire, juste histoire d'avoir
des phrases completes...
La prochaine veuille faire preuve de plus de précision dans tes propos et veuille trouver les exemples adéquats.
Commence par balayer devant ta porte et te relire, juste histoire d'avoir des phrases completes...
Tu es très inspiré ces temps-ci.
Francois
Je l'ai lu en grande partie...
Merci pour ton avis. Je suis impressionné encore un livre que tu as parcouru/lu. Tu les as tous lu les livres sur le C ? J'espère que tu les as empruntés via une bonne bibliothèque, parce que sinon bonjour le budget ! :-)
Merci.
François
Je l'ai lu en grande partie...
Merci pour ton avis. Je suis impressionné encore un livre que tu as
parcouru/lu. Tu les as tous lu les livres sur le C ? J'espère que tu les
as empruntés via une bonne bibliothèque, parce que sinon bonjour le
budget ! :-)
Merci pour ton avis. Je suis impressionné encore un livre que tu as parcouru/lu. Tu les as tous lu les livres sur le C ? J'espère que tu les as empruntés via une bonne bibliothèque, parce que sinon bonjour le budget ! :-)
Merci.
François
candide
On 12 mar, 20:50, Jean-Marc Bourguet wrote:
Si tu veux continuer dans l'analogie, on est comme les électriciens: ave c une bonne base installée qui n'est plus aux normes actuelles. La regard er et dire: "les professionnels ne respectent pas la norme" est un peu réducteur.
Le terme de "norme" est particulièrement inadapté ici (à moins que tu ne l'aies choisi volontairement mais je ne vois pas en quoi les variables globales ne respectent pas la norme). Et je ne vois pas le rapport avec ce que je dis et je te signale que vous n'êtes pas d'accord entre vous (toi et l'informaticien du lundi), lui il dit qu'il y a de mauvais artisan et toi tu dis que, ce n'est pas de leur faute, c'est le matos qui est trop vieux ou inadapté.
Non. Par nature, les problèmes de passage à l'échelle ne s'explique nt pas avec des petits exemples. Si tu n'as jamais fait que monter des tentes, t u ne vois pas la nécessité des fondations, même si tu as monté un ca mps de réfugié de 100.000 personnes au Rwanda.
Avec ce genre d'image on peut vraiment raconter n'importe quoi, je peux t'en faire plein du même genre (le vélo, le camion, le convoi exceptionnel, l'avion à réaction, le permis de conduire, le permis de voler, les roues motrices, etc) et on prouvera ni l'expliquera rien ainsi.
La nécessité de ça, ca apparaît avec un programme de 2000 lignes. Il y a des choses qui ne sont perceptibles qu'avec un programme de 20 000, de 200 000, de 2 000 000, de 20 000 000... sans oublier que d'autres facteurs
OK, alors on désapprend les variables globales à partir de combien de lignes ?
entre en compte. En gros tu as les étapes ou ça devient trop gros pou r
Une fois de plus, vous n'êtes même pas d'accord entre vous, ton collègue informaticien du lundi dit qu'une variable globale, c'est pas difficile à comprendre et il n'avance pas l'argument de la taille critique du code (ce que j'appelle l'argument à géométrie variable).
s'en occuper seul comme hobby, pour s'en occuper seul de manière professionnelle, pour être dans un projet où tu connais tout le monde en sachant ce que chacun fait, pour être dans un projet où tu connais tou tes les équipes en sachant en gros ce que chacune fait, où il y a une éq uipe dont tu n'avais jamais entendu parler qui fait quelque chose faisant que l e code dont tu t'occupes ne fonctionne plus.
Pas la peine d'être programmeur au long cours pour comprendre ce que tu me dis là. Mon propos n'est pas là : je NE DIS PAS QUE DEFENDS L'UTILISATION DES GLOBALES, je suis assez respectueux du savoir des gens compétents et expérimentés pour les écouter même sans tout comprendre du pourquoi et si un jour je dois enseigner du C, je ne le recommanderai pas non plus, pour un tas de raisons de vous avez dites et pas dites. Ce que je dis c'est que la réalité n'est pas conforme à ce que vous racontez et que dans le code source que je regarde pour me former, je vois tout le temps des variables globales, y compris sur des projets qui ne sont pas de petits projets, j'ai cité des exemples dans CAIRO et GMP, mais je pourrais citer la SDL et je pourrais aller voir dans le code source de Firefox ou de GNOME (projets de programmeurs du dimanche n'est-ce pas ?) et je serais curieux de ne pas voir de variables globales. Maintenant , on peut regarder ensemble si vous voulez et si on en trouve, c'est sans doute là que vous allez me sortir vos arguments à géométrie variable comme a commencé à répondre Marc Espié lequel d'ailleurs se voyant en train de perdre son sang-froid va se décider à ne plus s'abaisser à s'adresser à moi. A moins que vous me sortiez l'argument de notre informaticien du lundi : les variables globales, c'est à cause de la flemme MDR ! dans le genre débilités franchement ! c'est tout juste s'il ne nous as pas fait une étude comparative entre les codeurs du nord de la France et les codeurs des pays de la sieste.
Non. 5000 lignes de code, ça s'improvise sans problème avec un peu d'expérience. Je dirais même que des variables globales peuvent aider à structurer quelque chose d'aussi petit
Voilà, encore un nouvel argument, les variables globales ne sont donc pas à bannir, elles sont même parfois à recommander !!!!! MDR. Une fois de plus, vous n'êtes même pas d'accord entre vous.
Pour celui qui n'a jamais vu que des tentes, peut-être.
Tu laisses les Rwandais en paix, veux-tu ? et essaye de reprendre une argumentation un peu moins infantile, je t'en fais autant que tu veux de ce niveau-là ("on ne pilote pas une voiture comme un 38 tonnes, mais si ! les deux véhicules sont à moteurs, mais non, le permis n'est pas le même mais si !..." gna gna gna).
On 12 mar, 20:50, Jean-Marc Bourguet <j...@bourguet.org> wrote:
Si tu veux continuer dans l'analogie, on est comme les électriciens: ave c
une bonne base installée qui n'est plus aux normes actuelles. La regard er
et dire: "les professionnels ne respectent pas la norme" est un peu
réducteur.
Le terme de "norme" est particulièrement inadapté ici (à moins que tu
ne l'aies choisi volontairement mais je ne vois pas en quoi les
variables globales ne respectent pas la norme). Et je ne vois pas le
rapport avec ce que je dis et je te signale que vous n'êtes pas
d'accord entre vous (toi et l'informaticien du lundi), lui il dit
qu'il y a de mauvais artisan et toi tu dis que, ce n'est pas de leur
faute, c'est le matos qui est trop vieux ou inadapté.
Non. Par nature, les problèmes de passage à l'échelle ne s'explique nt pas
avec des petits exemples. Si tu n'as jamais fait que monter des tentes, t u
ne vois pas la nécessité des fondations, même si tu as monté un ca mps de
réfugié de 100.000 personnes au Rwanda.
Avec ce genre d'image on peut vraiment raconter n'importe quoi, je
peux t'en faire plein du même genre (le vélo, le camion, le convoi
exceptionnel, l'avion à réaction, le permis de conduire, le permis de
voler, les roues motrices, etc) et on prouvera ni l'expliquera rien
ainsi.
La nécessité de ça, ca apparaît avec un programme de 2000 lignes. Il y a
des choses qui ne sont perceptibles qu'avec un programme de 20 000, de 200
000, de 2 000 000, de 20 000 000... sans oublier que d'autres facteurs
OK, alors on désapprend les variables globales à partir de combien de
lignes ?
entre en compte. En gros tu as les étapes ou ça devient trop gros pou r
Une fois de plus, vous n'êtes même pas d'accord entre vous, ton
collègue informaticien du lundi dit qu'une variable globale, c'est pas
difficile à comprendre et il n'avance pas l'argument de la taille
critique du code (ce que j'appelle l'argument à géométrie variable).
s'en occuper seul comme hobby, pour s'en occuper seul de manière
professionnelle, pour être dans un projet où tu connais tout le monde en
sachant ce que chacun fait, pour être dans un projet où tu connais tou tes
les équipes en sachant en gros ce que chacune fait, où il y a une éq uipe
dont tu n'avais jamais entendu parler qui fait quelque chose faisant que l e
code dont tu t'occupes ne fonctionne plus.
Pas la peine d'être programmeur au long cours pour comprendre ce que
tu me dis là. Mon propos n'est pas là : je NE DIS PAS QUE DEFENDS
L'UTILISATION DES GLOBALES, je suis assez respectueux du savoir des
gens compétents et expérimentés pour les écouter même sans tout
comprendre du pourquoi et si un jour je dois enseigner du C, je ne le
recommanderai pas non plus, pour un tas de raisons de vous avez dites
et pas dites. Ce que je dis c'est que la réalité n'est pas conforme à
ce que vous racontez et que dans le code source que je regarde pour me
former, je vois tout le temps des variables globales, y compris sur
des projets qui ne sont pas de petits projets, j'ai cité des exemples
dans CAIRO et GMP, mais je pourrais citer la SDL et je pourrais aller
voir dans le code source de Firefox ou de GNOME (projets de
programmeurs du dimanche n'est-ce pas ?) et je serais curieux de ne
pas voir de variables globales. Maintenant , on peut regarder ensemble
si vous voulez et si on en trouve, c'est sans doute là que vous allez
me sortir vos arguments à géométrie variable comme a commencé à
répondre Marc Espié lequel d'ailleurs se voyant en train de perdre son
sang-froid va se décider à ne plus s'abaisser à s'adresser à moi. A
moins que vous me sortiez l'argument de notre informaticien du lundi :
les variables globales, c'est à cause de la flemme MDR ! dans le genre
débilités franchement ! c'est tout juste s'il ne nous as pas fait une
étude comparative entre les codeurs du nord de la France et les
codeurs des pays de la sieste.
Non. 5000 lignes de code, ça s'improvise sans problème avec un peu
d'expérience. Je dirais même que des variables globales peuvent aider à
structurer quelque chose d'aussi petit
Voilà, encore un nouvel argument, les variables globales ne sont donc
pas à bannir, elles sont même parfois à recommander !!!!! MDR. Une
fois de plus, vous n'êtes même pas d'accord entre vous.
Pour celui qui n'a jamais vu que des tentes, peut-être.
Tu laisses les Rwandais en paix, veux-tu ? et essaye de reprendre une
argumentation un peu moins infantile, je t'en fais autant que tu veux
de ce niveau-là ("on ne pilote pas une voiture comme un 38 tonnes,
mais si ! les deux véhicules sont à moteurs, mais non, le permis n'est
pas le même mais si !..." gna gna gna).
Si tu veux continuer dans l'analogie, on est comme les électriciens: ave c une bonne base installée qui n'est plus aux normes actuelles. La regard er et dire: "les professionnels ne respectent pas la norme" est un peu réducteur.
Le terme de "norme" est particulièrement inadapté ici (à moins que tu ne l'aies choisi volontairement mais je ne vois pas en quoi les variables globales ne respectent pas la norme). Et je ne vois pas le rapport avec ce que je dis et je te signale que vous n'êtes pas d'accord entre vous (toi et l'informaticien du lundi), lui il dit qu'il y a de mauvais artisan et toi tu dis que, ce n'est pas de leur faute, c'est le matos qui est trop vieux ou inadapté.
Non. Par nature, les problèmes de passage à l'échelle ne s'explique nt pas avec des petits exemples. Si tu n'as jamais fait que monter des tentes, t u ne vois pas la nécessité des fondations, même si tu as monté un ca mps de réfugié de 100.000 personnes au Rwanda.
Avec ce genre d'image on peut vraiment raconter n'importe quoi, je peux t'en faire plein du même genre (le vélo, le camion, le convoi exceptionnel, l'avion à réaction, le permis de conduire, le permis de voler, les roues motrices, etc) et on prouvera ni l'expliquera rien ainsi.
La nécessité de ça, ca apparaît avec un programme de 2000 lignes. Il y a des choses qui ne sont perceptibles qu'avec un programme de 20 000, de 200 000, de 2 000 000, de 20 000 000... sans oublier que d'autres facteurs
OK, alors on désapprend les variables globales à partir de combien de lignes ?
entre en compte. En gros tu as les étapes ou ça devient trop gros pou r
Une fois de plus, vous n'êtes même pas d'accord entre vous, ton collègue informaticien du lundi dit qu'une variable globale, c'est pas difficile à comprendre et il n'avance pas l'argument de la taille critique du code (ce que j'appelle l'argument à géométrie variable).
s'en occuper seul comme hobby, pour s'en occuper seul de manière professionnelle, pour être dans un projet où tu connais tout le monde en sachant ce que chacun fait, pour être dans un projet où tu connais tou tes les équipes en sachant en gros ce que chacune fait, où il y a une éq uipe dont tu n'avais jamais entendu parler qui fait quelque chose faisant que l e code dont tu t'occupes ne fonctionne plus.
Pas la peine d'être programmeur au long cours pour comprendre ce que tu me dis là. Mon propos n'est pas là : je NE DIS PAS QUE DEFENDS L'UTILISATION DES GLOBALES, je suis assez respectueux du savoir des gens compétents et expérimentés pour les écouter même sans tout comprendre du pourquoi et si un jour je dois enseigner du C, je ne le recommanderai pas non plus, pour un tas de raisons de vous avez dites et pas dites. Ce que je dis c'est que la réalité n'est pas conforme à ce que vous racontez et que dans le code source que je regarde pour me former, je vois tout le temps des variables globales, y compris sur des projets qui ne sont pas de petits projets, j'ai cité des exemples dans CAIRO et GMP, mais je pourrais citer la SDL et je pourrais aller voir dans le code source de Firefox ou de GNOME (projets de programmeurs du dimanche n'est-ce pas ?) et je serais curieux de ne pas voir de variables globales. Maintenant , on peut regarder ensemble si vous voulez et si on en trouve, c'est sans doute là que vous allez me sortir vos arguments à géométrie variable comme a commencé à répondre Marc Espié lequel d'ailleurs se voyant en train de perdre son sang-froid va se décider à ne plus s'abaisser à s'adresser à moi. A moins que vous me sortiez l'argument de notre informaticien du lundi : les variables globales, c'est à cause de la flemme MDR ! dans le genre débilités franchement ! c'est tout juste s'il ne nous as pas fait une étude comparative entre les codeurs du nord de la France et les codeurs des pays de la sieste.
Non. 5000 lignes de code, ça s'improvise sans problème avec un peu d'expérience. Je dirais même que des variables globales peuvent aider à structurer quelque chose d'aussi petit
Voilà, encore un nouvel argument, les variables globales ne sont donc pas à bannir, elles sont même parfois à recommander !!!!! MDR. Une fois de plus, vous n'êtes même pas d'accord entre vous.
Pour celui qui n'a jamais vu que des tentes, peut-être.
Tu laisses les Rwandais en paix, veux-tu ? et essaye de reprendre une argumentation un peu moins infantile, je t'en fais autant que tu veux de ce niveau-là ("on ne pilote pas une voiture comme un 38 tonnes, mais si ! les deux véhicules sont à moteurs, mais non, le permis n'est pas le même mais si !..." gna gna gna).
candide
Merci pour ton avis. Je suis impressionné encore un livre que tu as parcouru/lu. Tu les as tous lu les livres sur le C ?
Tous c'est difficile (beaucoup ne sont plus disponibles même d'occasion), mais j'en ai lu pas mal (une vingtaine peut-être) pensant à chaque fois trouver mieux ou plutôt moins mal. Et puis, les ouvrages sont très redondants. Et je me suis beaucoup calmé. Ma dernière acquisition : "C, traps and Pitfalls" correct mais pas transcendant.
J'espère que tu les as empruntés via une bonne bibliothèque, parce que sinon bonjour le budget ! :-)
Non, je les ai achetés la plupart du temps, comme ça je peux écrire dessus (rageuseument bien sûr !) Au passage, c'est très important pour moi de garder une trace écrite des émois de ces périodes virginales de premières lectures parce que quelque chose qui vous paraît obscur à un moment donné ne pourra plus être imaginé comme tel deux ou six mois plus tard, c'est irréversible. Ah que je regrette parfois ces instants à jamais perdus où je ne comprenais rien aux pointeurs, mon premier message sur fclc...
Merci pour ton avis. Je suis impressionné encore un livre que tu as
parcouru/lu. Tu les as tous lu les livres sur le C ?
Tous c'est difficile (beaucoup ne sont plus disponibles même
d'occasion), mais j'en ai lu pas mal (une vingtaine peut-être) pensant à
chaque fois trouver mieux ou plutôt moins mal. Et puis, les ouvrages
sont très redondants. Et je me suis beaucoup calmé. Ma dernière
acquisition : "C, traps and Pitfalls" correct mais pas transcendant.
J'espère que tu les
as empruntés via une bonne bibliothèque, parce que sinon bonjour le
budget ! :-)
Non, je les ai achetés la plupart du temps, comme ça je peux écrire
dessus (rageuseument bien sûr !) Au passage, c'est très important pour
moi de garder une trace écrite des émois de ces périodes virginales de
premières lectures parce que quelque chose qui vous paraît obscur à un
moment donné ne pourra plus être imaginé comme tel deux ou six mois plus
tard, c'est irréversible. Ah que je regrette parfois ces instants à
jamais perdus où je ne comprenais rien aux pointeurs, mon premier
message sur fclc...
Merci pour ton avis. Je suis impressionné encore un livre que tu as parcouru/lu. Tu les as tous lu les livres sur le C ?
Tous c'est difficile (beaucoup ne sont plus disponibles même d'occasion), mais j'en ai lu pas mal (une vingtaine peut-être) pensant à chaque fois trouver mieux ou plutôt moins mal. Et puis, les ouvrages sont très redondants. Et je me suis beaucoup calmé. Ma dernière acquisition : "C, traps and Pitfalls" correct mais pas transcendant.
J'espère que tu les as empruntés via une bonne bibliothèque, parce que sinon bonjour le budget ! :-)
Non, je les ai achetés la plupart du temps, comme ça je peux écrire dessus (rageuseument bien sûr !) Au passage, c'est très important pour moi de garder une trace écrite des émois de ces périodes virginales de premières lectures parce que quelque chose qui vous paraît obscur à un moment donné ne pourra plus être imaginé comme tel deux ou six mois plus tard, c'est irréversible. Ah que je regrette parfois ces instants à jamais perdus où je ne comprenais rien aux pointeurs, mon premier message sur fclc...
candide
On te demande de juger sur pièces, alors examine le texte et formule tes critiques, en faisant des citations précises.
[...] je vais vous poser un problème que vous _ne_pourrez_pas_ résoudre sans utiliser de pointeurs. Ce sera en quelque sorte le fil rouge du chapitre. Nous en reparlerons à la fin de ce chapitre et verrons quelle est la solution en utilisant ce que vous aurez appris.
Voici le problème : je veux écrire une fonction qui renvoie 2 valeurs.
Évidemment c'est moi qui souligne. Pour dire que je ne suis pas tout-à-fait d'accord.
struct horodatage { long h, m; };
struct horodatage decoupeMinutes(long heures, long minutes) { struct horodatage local = {0};
Oui, bien sûr, il y a une maladresse de formulation de la part de l'auteur, cette histoire de retourner une structure est bien connue, je suis sûr que l'auteur du tuto ne l'ignore pas. Je suis allé voir son chapitre sur les structures, il n'en parle pas. Je ne crois pas qu'on puisse lui reprocher d'avoir ignoré de traiter cette question.
Même sa formulation
------------------8<----------------------- Voici le problème : je veux écrire une fonction qui renvoie 2 valeurs. ------------------>8-----------------------
est contestable, à plusieurs titres. Mais ce que j'apprécie dans le tuto de matéo21 c'est qu'il parle du C comme s'il racontait une histoire, il a su mettre en scène le C. Mais comme toutes les mises-en-scène ...
On te demande de juger sur pièces, alors examine le texte et formule
tes critiques, en faisant des citations précises.
[...] je vais vous poser un problème que vous _ne_pourrez_pas_
résoudre sans utiliser de pointeurs. Ce sera en quelque sorte
le fil rouge du chapitre. Nous en reparlerons à la fin de ce
chapitre et verrons quelle est la solution en utilisant ce que
vous aurez appris.
Voici le problème : je veux écrire une fonction qui renvoie 2 valeurs.
Évidemment c'est moi qui souligne. Pour dire que je ne suis pas tout-à-fait
d'accord.
struct horodatage { long h, m; };
struct horodatage decoupeMinutes(long heures, long minutes)
{
struct horodatage local = {0};
Oui, bien sûr, il y a une maladresse de formulation de la part de
l'auteur, cette histoire de retourner une structure est bien connue, je
suis sûr que l'auteur du tuto ne l'ignore pas. Je suis allé voir son
chapitre sur les structures, il n'en parle pas. Je ne crois pas qu'on
puisse lui reprocher d'avoir ignoré de traiter cette question.
Même sa formulation
------------------8<-----------------------
Voici le problème : je veux écrire une fonction qui renvoie 2 valeurs.
------------------>8-----------------------
est contestable, à plusieurs titres. Mais ce que j'apprécie dans le tuto
de matéo21 c'est qu'il parle du C comme s'il racontait une histoire, il
a su mettre en scène le C. Mais comme toutes les mises-en-scène ...
[...] je vais vous poser un problème que vous _ne_pourrez_pas_ résoudre sans utiliser de pointeurs. Ce sera en quelque sorte le fil rouge du chapitre. Nous en reparlerons à la fin de ce chapitre et verrons quelle est la solution en utilisant ce que vous aurez appris.
Voici le problème : je veux écrire une fonction qui renvoie 2 valeurs.
Évidemment c'est moi qui souligne. Pour dire que je ne suis pas tout-à-fait d'accord.
struct horodatage { long h, m; };
struct horodatage decoupeMinutes(long heures, long minutes) { struct horodatage local = {0};
Oui, bien sûr, il y a une maladresse de formulation de la part de l'auteur, cette histoire de retourner une structure est bien connue, je suis sûr que l'auteur du tuto ne l'ignore pas. Je suis allé voir son chapitre sur les structures, il n'en parle pas. Je ne crois pas qu'on puisse lui reprocher d'avoir ignoré de traiter cette question.
Même sa formulation
------------------8<----------------------- Voici le problème : je veux écrire une fonction qui renvoie 2 valeurs. ------------------>8-----------------------
est contestable, à plusieurs titres. Mais ce que j'apprécie dans le tuto de matéo21 c'est qu'il parle du C comme s'il racontait une histoire, il a su mettre en scène le C. Mais comme toutes les mises-en-scène ...
Francois
J'espère que tu les as empruntés via une bonne bibliothèque, parce que sinon bonjour le budget ! :-)
Non, je les ai achetés la plupart du temps,
Ouh la la ! Remarque moi aussi j'ai claqué un fric fou en livres (en maths ou info). Cela reste quand même moins coûteux que les belles voitures. ;-)
Ah que je regrette parfois ces instants à jamais perdus où je ne comprenais rien aux pointeurs, mon premier message sur fclc...
Tu plaisantes j'espère ? Au contraire, je comprendrais bien mieux que tu regardes tes notes « rageuses » et que tu te dises avec délectation : « comme je suis content maintenant de comprendre les pointeurs ! »
Moi, en ce moment, je me dis : « comme je serais content de comprendre les tableaux ! ». Au passage, ... est-ce que j'ose ? Allez : quand je j'avais dit « qu'un tableau c'est un pointeur dont on ne peut pas changer la valeur », tu m'avais dit non car il n'est pas correct de dire "tableau = pointeur". Si je dis ceci :
« Le nom t d'un tableau est une *constante* de type pointeur dont la valeur est fixée une bonne fois pour toute au début de l'exécution du programme et n'est pas stockée en mémoire. »
est-ce correct ? J'ai l'impression que oui bien sûr, mais je me trompe peut-être (sûrement).
François
J'espère que tu les as empruntés via une bonne bibliothèque, parce que
sinon bonjour le budget ! :-)
Non, je les ai achetés la plupart du temps,
Ouh la la ! Remarque moi aussi j'ai claqué un fric fou en livres (en
maths ou info). Cela reste quand même moins coûteux que les belles
voitures. ;-)
Ah que je regrette parfois ces instants à
jamais perdus où je ne comprenais rien aux pointeurs, mon premier
message sur fclc...
Tu plaisantes j'espère ? Au contraire, je comprendrais bien mieux que tu
regardes tes notes « rageuses » et que tu te dises avec délectation : «
comme je suis content maintenant de comprendre les pointeurs ! »
Moi, en ce moment, je me dis : « comme je serais content de comprendre
les tableaux ! ». Au passage, ... est-ce que j'ose ? Allez : quand je
j'avais dit « qu'un tableau c'est un pointeur dont on ne peut pas
changer la valeur », tu m'avais dit non car il n'est pas correct de dire
"tableau = pointeur". Si je dis ceci :
« Le nom t d'un tableau est une *constante* de type pointeur dont la
valeur est fixée une bonne fois pour toute au début de l'exécution du
programme et n'est pas stockée en mémoire. »
est-ce correct ? J'ai l'impression que oui bien sûr, mais je me trompe
peut-être (sûrement).
J'espère que tu les as empruntés via une bonne bibliothèque, parce que sinon bonjour le budget ! :-)
Non, je les ai achetés la plupart du temps,
Ouh la la ! Remarque moi aussi j'ai claqué un fric fou en livres (en maths ou info). Cela reste quand même moins coûteux que les belles voitures. ;-)
Ah que je regrette parfois ces instants à jamais perdus où je ne comprenais rien aux pointeurs, mon premier message sur fclc...
Tu plaisantes j'espère ? Au contraire, je comprendrais bien mieux que tu regardes tes notes « rageuses » et que tu te dises avec délectation : « comme je suis content maintenant de comprendre les pointeurs ! »
Moi, en ce moment, je me dis : « comme je serais content de comprendre les tableaux ! ». Au passage, ... est-ce que j'ose ? Allez : quand je j'avais dit « qu'un tableau c'est un pointeur dont on ne peut pas changer la valeur », tu m'avais dit non car il n'est pas correct de dire "tableau = pointeur". Si je dis ceci :
« Le nom t d'un tableau est une *constante* de type pointeur dont la valeur est fixée une bonne fois pour toute au début de l'exécution du programme et n'est pas stockée en mémoire. »
est-ce correct ? J'ai l'impression que oui bien sûr, mais je me trompe peut-être (sûrement).
François
Jean-Marc Bourguet
candide writes:
On 12 mar, 20:50, Jean-Marc Bourguet wrote:
Si tu veux continuer dans l'analogie, on est comme les électriciens: avec une bonne base installée qui n'est plus aux normes actuelles. La regarder et dire: "les professionnels ne respectent pas la norme" est un peu réducteur.
Le terme de "norme" est particulièrement inadapté ici (à moins que tu ne l'aies choisi volontairement mais je ne vois pas en quoi les variables globales ne respectent pas la norme).
Je pensais plus aux normes régissant les installations électriques qu'à celle décrivant le langage C.
Et je ne vois pas le rapport avec ce que je dis et je te signale que vous n'êtes pas d'accord entre vous (toi et l'informaticien du lundi), lui il dit qu'il y a de mauvais artisan et toi tu dis que, ce n'est pas de leur faute, c'est le matos qui est trop vieux ou inadapté.
Ne te serait-il pas venu à l'idée qu'il peut y avoir plus d'une explication vraie et qu'aucune d'elles n'explique tous les cas?
La nécessité de ça, ca apparaît avec un programme de 2000 lignes. Il y a des choses qui ne sont perceptibles qu'avec un programme de 20 000, de 200 000, de 2 000 000, de 20 000 000... sans oublier que d'autres facteurs
OK, alors on désapprend les variables globales à partir de combien de lignes ?
31 415
entre en compte. En gros tu as les étapes ou ça devient trop gros pour
Une fois de plus, vous n'êtes même pas d'accord entre vous, ton collègue informaticien du lundi dit qu'une variable globale, c'est pas difficile à comprendre et il n'avance pas l'argument de la taille critique du code (ce que j'appelle l'argument à géométrie variable).
J'ai pourtant l'impression que nous sommes d'accord. Une variable globale, c'est une source de complexité supplémentaire parce qu'il y a des relations qui ne sont pas explicites. Quand on accumule les sources de complexité (c'est où la taille intervient), on fini par ne plus pouvoir maîtriser l'ensemble. Tant qu'on n'en a pas accumuler assez, on peut ne pas percevoir les problèmes. [...]
Non. 5000 lignes de code, ça s'improvise sans problème avec un peu d'expérience. Je dirais même que des variables globales peuvent aider à structurer quelque chose d'aussi petit
Voilà, encore un nouvel argument, les variables globales ne sont donc pas à bannir, elles sont même parfois à recommander !!!!!
Tu utilises un mot beaucoup plus fort que celui que j'ai écrit. Un problème est qu'on reste rarement petit, on grossit. Et ce qui n'était pas génant et peut-être même bénéfique devient un problème.
Un problème des variables globales, ce sont les relations implicites qu'elle crée. Mais expliciter toutes les relations, c'est aussi problématique (essaie de programmer dans un langage fonctionnel pur sans utiliser les monades et tu verras).
D'expérience, on constate qu'on abuse plus facile des variables globales qu'on ne pèche en ne les utilisant pas où elles sont adéquates. On prèche donc contre.
-- Jean-Marc FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc Site de usenet-fr: http://www.usenet-fr.news.eu.org
candide <c-candide@wanadoo.fr> writes:
On 12 mar, 20:50, Jean-Marc Bourguet <j...@bourguet.org> wrote:
Si tu veux continuer dans l'analogie, on est comme les électriciens: avec
une bonne base installée qui n'est plus aux normes actuelles. La regarder
et dire: "les professionnels ne respectent pas la norme" est un peu
réducteur.
Le terme de "norme" est particulièrement inadapté ici (à moins que tu
ne l'aies choisi volontairement mais je ne vois pas en quoi les
variables globales ne respectent pas la norme).
Je pensais plus aux normes régissant les installations électriques qu'à
celle décrivant le langage C.
Et je ne vois pas le rapport avec ce que je dis et je te signale que vous
n'êtes pas d'accord entre vous (toi et l'informaticien du lundi), lui il
dit qu'il y a de mauvais artisan et toi tu dis que, ce n'est pas de leur
faute, c'est le matos qui est trop vieux ou inadapté.
Ne te serait-il pas venu à l'idée qu'il peut y avoir plus d'une explication
vraie et qu'aucune d'elles n'explique tous les cas?
La nécessité de ça, ca apparaît avec un programme de 2000 lignes. Il y a
des choses qui ne sont perceptibles qu'avec un programme de 20 000, de 200
000, de 2 000 000, de 20 000 000... sans oublier que d'autres facteurs
OK, alors on désapprend les variables globales à partir de combien de
lignes ?
31 415
entre en compte. En gros tu as les étapes ou ça devient trop gros pour
Une fois de plus, vous n'êtes même pas d'accord entre vous, ton
collègue informaticien du lundi dit qu'une variable globale, c'est pas
difficile à comprendre et il n'avance pas l'argument de la taille
critique du code (ce que j'appelle l'argument à géométrie variable).
J'ai pourtant l'impression que nous sommes d'accord. Une variable globale,
c'est une source de complexité supplémentaire parce qu'il y a des relations
qui ne sont pas explicites. Quand on accumule les sources de complexité
(c'est où la taille intervient), on fini par ne plus pouvoir maîtriser
l'ensemble. Tant qu'on n'en a pas accumuler assez, on peut ne pas
percevoir les problèmes.
[...]
Non. 5000 lignes de code, ça s'improvise sans problème avec un peu
d'expérience. Je dirais même que des variables globales peuvent aider à
structurer quelque chose d'aussi petit
Voilà, encore un nouvel argument, les variables globales ne sont donc
pas à bannir, elles sont même parfois à recommander !!!!!
Tu utilises un mot beaucoup plus fort que celui que j'ai écrit. Un
problème est qu'on reste rarement petit, on grossit. Et ce qui n'était pas
génant et peut-être même bénéfique devient un problème.
Un problème des variables globales, ce sont les relations implicites
qu'elle crée. Mais expliciter toutes les relations, c'est aussi
problématique (essaie de programmer dans un langage fonctionnel pur sans
utiliser les monades et tu verras).
D'expérience, on constate qu'on abuse plus facile des variables globales
qu'on ne pèche en ne les utilisant pas où elles sont adéquates. On prèche
donc contre.
--
Jean-Marc
FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Si tu veux continuer dans l'analogie, on est comme les électriciens: avec une bonne base installée qui n'est plus aux normes actuelles. La regarder et dire: "les professionnels ne respectent pas la norme" est un peu réducteur.
Le terme de "norme" est particulièrement inadapté ici (à moins que tu ne l'aies choisi volontairement mais je ne vois pas en quoi les variables globales ne respectent pas la norme).
Je pensais plus aux normes régissant les installations électriques qu'à celle décrivant le langage C.
Et je ne vois pas le rapport avec ce que je dis et je te signale que vous n'êtes pas d'accord entre vous (toi et l'informaticien du lundi), lui il dit qu'il y a de mauvais artisan et toi tu dis que, ce n'est pas de leur faute, c'est le matos qui est trop vieux ou inadapté.
Ne te serait-il pas venu à l'idée qu'il peut y avoir plus d'une explication vraie et qu'aucune d'elles n'explique tous les cas?
La nécessité de ça, ca apparaît avec un programme de 2000 lignes. Il y a des choses qui ne sont perceptibles qu'avec un programme de 20 000, de 200 000, de 2 000 000, de 20 000 000... sans oublier que d'autres facteurs
OK, alors on désapprend les variables globales à partir de combien de lignes ?
31 415
entre en compte. En gros tu as les étapes ou ça devient trop gros pour
Une fois de plus, vous n'êtes même pas d'accord entre vous, ton collègue informaticien du lundi dit qu'une variable globale, c'est pas difficile à comprendre et il n'avance pas l'argument de la taille critique du code (ce que j'appelle l'argument à géométrie variable).
J'ai pourtant l'impression que nous sommes d'accord. Une variable globale, c'est une source de complexité supplémentaire parce qu'il y a des relations qui ne sont pas explicites. Quand on accumule les sources de complexité (c'est où la taille intervient), on fini par ne plus pouvoir maîtriser l'ensemble. Tant qu'on n'en a pas accumuler assez, on peut ne pas percevoir les problèmes. [...]
Non. 5000 lignes de code, ça s'improvise sans problème avec un peu d'expérience. Je dirais même que des variables globales peuvent aider à structurer quelque chose d'aussi petit
Voilà, encore un nouvel argument, les variables globales ne sont donc pas à bannir, elles sont même parfois à recommander !!!!!
Tu utilises un mot beaucoup plus fort que celui que j'ai écrit. Un problème est qu'on reste rarement petit, on grossit. Et ce qui n'était pas génant et peut-être même bénéfique devient un problème.
Un problème des variables globales, ce sont les relations implicites qu'elle crée. Mais expliciter toutes les relations, c'est aussi problématique (essaie de programmer dans un langage fonctionnel pur sans utiliser les monades et tu verras).
D'expérience, on constate qu'on abuse plus facile des variables globales qu'on ne pèche en ne les utilisant pas où elles sont adéquates. On prèche donc contre.
-- Jean-Marc FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Jean-Marc Bourguet
Francois writes:
« Le nom t d'un tableau
Le nom d'une chose n'est pas ce qu'il nomme. C'est peut être un peu métaphysique comme idée mais la différence est fondamentale en informatique.
Il n'y aucune différence entre une expression de type tableau réduite au nom d'une variable et une expression plus complexe de même type.
est une *constante* de type pointeur
Je ne sais pas de quoi tu parles. Le nom est un nom. La variable est de type tableau et pas de type pointeur et n'est pas constante.
dont la valeur est fixée une bonne fois pour toute au début de l'exécution du programme
Son adresse peut être fixée ou pas (pense à une variable locale à une fonction, son adresse ne sera fixée que quand la fonction commencera).
et n'est pas stockée en mémoire. »
Peut-être ou pas. Je ne sais pas de quoi tu parles.
-- Jean-Marc FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Francois <mathsattacks@free.fr> writes:
« Le nom t d'un tableau
Le nom d'une chose n'est pas ce qu'il nomme. C'est peut être un peu
métaphysique comme idée mais la différence est fondamentale en
informatique.
Il n'y aucune différence entre une expression de type tableau réduite au
nom d'une variable et une expression plus complexe de même type.
est une *constante* de type pointeur
Je ne sais pas de quoi tu parles. Le nom est un nom. La variable est de
type tableau et pas de type pointeur et n'est pas constante.
dont la valeur est fixée une bonne fois pour toute au début de
l'exécution du programme
Son adresse peut être fixée ou pas (pense à une variable locale à une
fonction, son adresse ne sera fixée que quand la fonction commencera).
et n'est pas stockée en mémoire. »
Peut-être ou pas. Je ne sais pas de quoi tu parles.
--
Jean-Marc
FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc
Site de usenet-fr: http://www.usenet-fr.news.eu.org