Heu... Kinkin a une url sur le Livre de la Vérité ici ? Que j'en profite aussi, quoi !
La Vérité est payante !
--
Français *==> "Musique renaissance" <==* English midi - facsimiles - ligatures - mensuration http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/ Alain Naigeon - - Strasbourg, France
Manuel
"Godot" a écrit dans le message de news:bvrcp5$v9h$
"Manuel" a écrit dans le message de news:bvrbbb$lcn$
"Godot" a écrit dans le message de news:bvr2e6$mka$
"Alex Marandon" a écrit dans le message de news:
On 2004-02-03, bruac wrote:
je suis à la recherche d'une personne pour réaliser des programmes simples.
// Moi, moi ! Et je le prouve :
#include <iostream> int main () { std::cout << "Hello, World !" << std::endl; }
// Voila.
Recalé
Où est le
return 0;
Il est implicite en C++ ...qui est recalé ?
;-)
Où as-tu vu ça ? Ce n'est pas parce que ton compilateur le tolère que c'est la règle.
Dans le standard... merci à Jean-Marc pour la référence exacte.
Ça me rappelle cette vieille histoire du
main() { }
le but de tout bon programmeur est de rendre son code le plus générique dans
la mesure du possible. Et je connais des compilateurs qui mettraient un warning ou une erreur là-dessus. :-)
Personellement, j'écris toujours "return 0;" si j'ai rien à retourner dans "main()". Je n'aime pas non plus les exces de souplesse mais le code posté était correct.
P.S. Euh... je suis nouveau ici. Bonjour à tous :-)
--
- Manuel to reply, swap the name with the domain.
"Godot" <titi@toto.com> a écrit dans le message de
news:bvrcp5$v9h$1@biggoron.nerim.net...
"Manuel" <swissonline@mzaccaria.ch> a écrit dans le message de
news:bvrbbb$lcn$1@newshispeed.ch...
"Godot" <titi@toto.com> a écrit dans le message de
news:bvr2e6$mka$1@biggoron.nerim.net...
"Alex Marandon" <al@nospam.org> a écrit dans le message de
news:slrnc220nv.9c9.al@dada.alpage.org...
On 2004-02-03, bruac <bruac@wanadoo.fr> wrote:
je suis à la recherche d'une personne pour
réaliser des programmes simples.
// Moi, moi ! Et je le prouve :
#include <iostream>
int main () { std::cout << "Hello, World !" << std::endl; }
// Voila.
Recalé
Où est le
return 0;
Il est implicite en C++
...qui est recalé ?
;-)
Où as-tu vu ça ?
Ce n'est pas parce que ton compilateur le tolère que c'est la règle.
Dans le standard... merci à Jean-Marc pour la référence exacte.
Ça me rappelle cette vieille histoire du
main()
{
}
le but de tout bon programmeur est de rendre son code le plus générique
dans
la mesure du possible. Et je connais des compilateurs qui mettraient un
warning ou une erreur là-dessus. :-)
Personellement, j'écris toujours "return 0;" si j'ai rien à retourner dans
"main()". Je
n'aime pas non plus les exces de souplesse mais le code posté était correct.
P.S. Euh... je suis nouveau ici. Bonjour à tous :-)
"Godot" a écrit dans le message de news:bvrcp5$v9h$
"Manuel" a écrit dans le message de news:bvrbbb$lcn$
"Godot" a écrit dans le message de news:bvr2e6$mka$
"Alex Marandon" a écrit dans le message de news:
On 2004-02-03, bruac wrote:
je suis à la recherche d'une personne pour réaliser des programmes simples.
// Moi, moi ! Et je le prouve :
#include <iostream> int main () { std::cout << "Hello, World !" << std::endl; }
// Voila.
Recalé
Où est le
return 0;
Il est implicite en C++ ...qui est recalé ?
;-)
Où as-tu vu ça ? Ce n'est pas parce que ton compilateur le tolère que c'est la règle.
Dans le standard... merci à Jean-Marc pour la référence exacte.
Ça me rappelle cette vieille histoire du
main() { }
le but de tout bon programmeur est de rendre son code le plus générique dans
la mesure du possible. Et je connais des compilateurs qui mettraient un warning ou une erreur là-dessus. :-)
Personellement, j'écris toujours "return 0;" si j'ai rien à retourner dans "main()". Je n'aime pas non plus les exces de souplesse mais le code posté était correct.
P.S. Euh... je suis nouveau ici. Bonjour à tous :-)
--
- Manuel to reply, swap the name with the domain.
Alex Marandon
On 2004-02-04, Godot wrote:
Où est le
return 0;
Je sais pas, ça sert à quoi de le mettre ? Mon compilateur ne dit rien et le programme s'exécute comme prévu...
La portabilité "devrait" être un soucis d'un programmeur "normal". Ceci dit, vivant en démocratie, on est libre de faire ce qu'on veut.
Edifiante explication, merci pour ta contribution.
Personnellement, si j'étais recruteur, j'éliminerais d'office un candidat qui raisonne comme ça ;-)
Tu éliminerais quelqu'un qui souhaite comprendre pourquoi on lui dit que son code n'est pas propre ? Ah, bon.
On 2004-02-04, Godot <titi@toto.com> wrote:
Où est le
return 0;
Je sais pas, ça sert à quoi de le mettre ? Mon compilateur ne dit rien
et le programme s'exécute comme prévu...
La portabilité "devrait" être un soucis d'un programmeur "normal". Ceci dit,
vivant en démocratie, on est libre de faire ce qu'on veut.
Edifiante explication, merci pour ta contribution.
Personnellement, si j'étais recruteur, j'éliminerais d'office un candidat
qui raisonne comme ça ;-)
Tu éliminerais quelqu'un qui souhaite comprendre pourquoi on lui dit que
son code n'est pas propre ? Ah, bon.
Je sais pas, ça sert à quoi de le mettre ? Mon compilateur ne dit rien et le programme s'exécute comme prévu...
La portabilité "devrait" être un soucis d'un programmeur "normal". Ceci dit, vivant en démocratie, on est libre de faire ce qu'on veut.
Edifiante explication, merci pour ta contribution.
Personnellement, si j'étais recruteur, j'éliminerais d'office un candidat qui raisonne comme ça ;-)
Tu éliminerais quelqu'un qui souhaite comprendre pourquoi on lui dit que son code n'est pas propre ? Ah, bon.
kanze
Alex Marandon wrote in message news:...
On 2004-02-04, Godot wrote:
je suis à la recherche d'une personne pour réaliser des programmes simples.
// Moi, moi ! Et je le prouve :
#include <iostream> int main () { std::cout << "Hello, World !" << std::endl; }
// Voila.
Recalé
Ouin.
Où est le
return 0;
Je sais pas, ça sert à quoi de le mettre ?
Ça sert à la même chose qu'une bonne indentation, ou la structuration en général. La fonction main renvoie un int. Un int qui a une sémantique bien définie par la norme. C'est donc plus propre à mettre le return.
D'autant plus que ton programme n'est pas vraiment correct. Il suffit pour des buts pédogogique, mais dans la pratique, dans un milieu professionnel, on ajouterat quelque chose du genre :
Ne pas vérifier que les sorties ont réelement bieu eu lieu est une erreur grave dans les boîtes où j'ai travaillé.
Mon compilateur ne dit rien et le programme s'exécute comme prévu...
Le compilateur ne dit rien parce qu'il y a un hack dans la norme. Arriver à la fin de la fonction main (mais seulement la fonction main) équivaut à un « return 0 ». J'avoue que je ne sais pas pourquoi, parce qu'en dehors des petits programmes d'essai ou de démo, je n'ai jamais fait un « return 0 » -- il y a toujours quelque chose qui peut mal se passer, et qui exige que le retour ne soit pas une constante.
En ce qui concerne ton programme, est-ce que tu l'as vraiment testé ? Avec cout rédirigé vers un fichier sur un disque plein, par exemple ?
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Alex Marandon <al@nospam.org> wrote in message
news:<slrnc22d7j.rrt.al@dada.alpage.org>...
On 2004-02-04, Godot <titi@toto.com> wrote:
je suis à la recherche d'une personne pour
réaliser des programmes simples.
// Moi, moi ! Et je le prouve :
#include <iostream>
int main () { std::cout << "Hello, World !" << std::endl; }
// Voila.
Recalé
Ouin.
Où est le
return 0;
Je sais pas, ça sert à quoi de le mettre ?
Ça sert à la même chose qu'une bonne indentation, ou la structuration en
général. La fonction main renvoie un int. Un int qui a une sémantique
bien définie par la norme. C'est donc plus propre à mettre le return.
D'autant plus que ton programme n'est pas vraiment correct. Il suffit
pour des buts pédogogique, mais dans la pratique, dans un milieu
professionnel, on ajouterat quelque chose du genre :
Ne pas vérifier que les sorties ont réelement bieu eu lieu est une
erreur grave dans les boîtes où j'ai travaillé.
Mon compilateur ne dit rien et le programme s'exécute comme prévu...
Le compilateur ne dit rien parce qu'il y a un hack dans la norme.
Arriver à la fin de la fonction main (mais seulement la fonction main)
équivaut à un « return 0 ». J'avoue que je ne sais pas pourquoi, parce
qu'en dehors des petits programmes d'essai ou de démo, je n'ai jamais
fait un « return 0 » -- il y a toujours quelque chose qui peut mal se
passer, et qui exige que le retour ne soit pas une constante.
En ce qui concerne ton programme, est-ce que tu l'as vraiment testé ?
Avec cout rédirigé vers un fichier sur un disque plein, par exemple ?
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
je suis à la recherche d'une personne pour réaliser des programmes simples.
// Moi, moi ! Et je le prouve :
#include <iostream> int main () { std::cout << "Hello, World !" << std::endl; }
// Voila.
Recalé
Ouin.
Où est le
return 0;
Je sais pas, ça sert à quoi de le mettre ?
Ça sert à la même chose qu'une bonne indentation, ou la structuration en général. La fonction main renvoie un int. Un int qui a une sémantique bien définie par la norme. C'est donc plus propre à mettre le return.
D'autant plus que ton programme n'est pas vraiment correct. Il suffit pour des buts pédogogique, mais dans la pratique, dans un milieu professionnel, on ajouterat quelque chose du genre :
Ne pas vérifier que les sorties ont réelement bieu eu lieu est une erreur grave dans les boîtes où j'ai travaillé.
Mon compilateur ne dit rien et le programme s'exécute comme prévu...
Le compilateur ne dit rien parce qu'il y a un hack dans la norme. Arriver à la fin de la fonction main (mais seulement la fonction main) équivaut à un « return 0 ». J'avoue que je ne sais pas pourquoi, parce qu'en dehors des petits programmes d'essai ou de démo, je n'ai jamais fait un « return 0 » -- il y a toujours quelque chose qui peut mal se passer, et qui exige que le retour ne soit pas une constante.
En ce qui concerne ton programme, est-ce que tu l'as vraiment testé ? Avec cout rédirigé vers un fichier sur un disque plein, par exemple ?
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Alex Marandon
On 2004-02-04, Manuel wrote:
Où as-tu vu ça ? Ce n'est pas parce que ton compilateur le tolère que c'est la règle.
Dans le standard... merci à Jean-Marc pour la référence exacte. [...]
le but de tout bon programmeur est de rendre son code le plus générique
D'autant que, c'est bien connu, le « Bon Programmeur », n'a pas besoin de lire les docs ;-)
On 2004-02-04, Manuel <swissonline@mzaccaria.ch> wrote:
Où as-tu vu ça ?
Ce n'est pas parce que ton compilateur le tolère que c'est la règle.
Dans le standard... merci à Jean-Marc pour la référence exacte.
[...]
le but de tout bon programmeur est de rendre son code le plus générique
D'autant que, c'est bien connu, le « Bon Programmeur », n'a pas besoin
de lire les docs ;-)
Où as-tu vu ça ? Ce n'est pas parce que ton compilateur le tolère que c'est la règle.
Dans le standard... merci à Jean-Marc pour la référence exacte. [...]
le but de tout bon programmeur est de rendre son code le plus générique
D'autant que, c'est bien connu, le « Bon Programmeur », n'a pas besoin de lire les docs ;-)
kanze
"Godot" wrote in message news:<bvrimn$14fb$...
"Jean-Marc Bourguet" a écrit dans le message de news:
Il est implicite en C++ ...qui est recalé ?
;-)
Où as-tu vu ça ?
3.6.1/5
Mea culpa.
Oui et non. Parce qu'il y a la norme, et il y a des compilateurs. Et malheureusement, ils ne sont pas toujours d'accord. Un maximum de portabilité exige le retour (ou un appel à exit(), mais on l'évite en C++ parce qu'il n'appelle pas les destructeurs des variables locales).
Mais dans la pratique, pour un programme professionnel, comme j'ai dit ailleurs, « return 0 » est quasiment toujours une erreur. Tu ne vas pas me dire qu'il n'y a rien dans le programme qui peut échouer.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
"Godot" <titi@toto.com> wrote in message
news:<bvrimn$14fb$1@biggoron.nerim.net>...
"Jean-Marc Bourguet" <jm@bourguet.org> a écrit dans le message de
news:pxbn07yoe2o.fsf@news.bourguet.org...
Il est implicite en C++
...qui est recalé ?
;-)
Où as-tu vu ça ?
3.6.1/5
Mea culpa.
Oui et non. Parce qu'il y a la norme, et il y a des compilateurs. Et
malheureusement, ils ne sont pas toujours d'accord. Un maximum de
portabilité exige le retour (ou un appel à exit(), mais on l'évite en
C++ parce qu'il n'appelle pas les destructeurs des variables locales).
Mais dans la pratique, pour un programme professionnel, comme j'ai dit
ailleurs, « return 0 » est quasiment toujours une erreur. Tu ne vas pas
me dire qu'il n'y a rien dans le programme qui peut échouer.
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
"Jean-Marc Bourguet" a écrit dans le message de news:
Il est implicite en C++ ...qui est recalé ?
;-)
Où as-tu vu ça ?
3.6.1/5
Mea culpa.
Oui et non. Parce qu'il y a la norme, et il y a des compilateurs. Et malheureusement, ils ne sont pas toujours d'accord. Un maximum de portabilité exige le retour (ou un appel à exit(), mais on l'évite en C++ parce qu'il n'appelle pas les destructeurs des variables locales).
Mais dans la pratique, pour un programme professionnel, comme j'ai dit ailleurs, « return 0 » est quasiment toujours une erreur. Tu ne vas pas me dire qu'il n'y a rien dans le programme qui peut échouer.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Alex Marandon
On 2004-02-05, wrote: [...du vécu...]
En ce qui concerne ton programme, est-ce que tu l'as vraiment testé ?
Oui, j'ai constaté qu'il affichait la chaine attendue. Mais je devine que ton « vraiment » veut en dire plus qu'il n'en dit.
Avec cout rédirigé vers un fichier sur un disque plein, par exemple ?
Non. Où veux-tu en venir ?
On 2004-02-05, kanze@gabi-soft.fr <kanze@gabi-soft.fr> wrote:
[...du vécu...]
En ce qui concerne ton programme, est-ce que tu l'as vraiment testé ?
Oui, j'ai constaté qu'il affichait la chaine attendue. Mais je devine
que ton « vraiment » veut en dire plus qu'il n'en dit.
Avec cout rédirigé vers un fichier sur un disque plein, par exemple ?
En ce qui concerne ton programme, est-ce que tu l'as vraiment testé ?
Oui, j'ai constaté qu'il affichait la chaine attendue. Mais je devine que ton « vraiment » veut en dire plus qu'il n'en dit.
Avec cout rédirigé vers un fichier sur un disque plein, par exemple ?
Non. Où veux-tu en venir ?
Alain Naigeon
"Alex Marandon" a écrit dans le message news:
On 2004-02-05, wrote: [...du vécu...]
En ce qui concerne ton programme, est-ce que tu l'as vraiment testé ?
Oui, j'ai constaté qu'il affichait la chaine attendue. Mais je devine que ton « vraiment » veut en dire plus qu'il n'en dit.
Avec cout rédirigé vers un fichier sur un disque plein, par exemple ?
Non. Où veux-tu en venir ?
Peut-être à confirmer que "vraiment" voulait effectivement en dire plus qu'il n'en dit. Si l'espace des conditions de test ne contient pas le sous-espace des conditions provoquant une erreur, ton test passe, et il est "vraiment" trompeur.
--
Français *==> "Musique renaissance" <==* English midi - facsimiles - ligatures - mensuration http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/ Alain Naigeon - - Strasbourg, France
"Alex Marandon" <al@nospam.org> a écrit dans le message news:
slrnc259jh.hb3.al@dada.alpage.org...
On 2004-02-05, kanze@gabi-soft.fr <kanze@gabi-soft.fr> wrote:
[...du vécu...]
En ce qui concerne ton programme, est-ce que tu l'as vraiment testé ?
Oui, j'ai constaté qu'il affichait la chaine attendue. Mais je devine
que ton « vraiment » veut en dire plus qu'il n'en dit.
Avec cout rédirigé vers un fichier sur un disque plein, par exemple ?
Non. Où veux-tu en venir ?
Peut-être à confirmer que "vraiment" voulait effectivement
en dire plus qu'il n'en dit. Si l'espace des conditions de test
ne contient pas le sous-espace des conditions provoquant
une erreur, ton test passe, et il est "vraiment" trompeur.
--
Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - anaigeon@free.fr - Strasbourg, France
En ce qui concerne ton programme, est-ce que tu l'as vraiment testé ?
Oui, j'ai constaté qu'il affichait la chaine attendue. Mais je devine que ton « vraiment » veut en dire plus qu'il n'en dit.
Avec cout rédirigé vers un fichier sur un disque plein, par exemple ?
Non. Où veux-tu en venir ?
Peut-être à confirmer que "vraiment" voulait effectivement en dire plus qu'il n'en dit. Si l'espace des conditions de test ne contient pas le sous-espace des conditions provoquant une erreur, ton test passe, et il est "vraiment" trompeur.
--
Français *==> "Musique renaissance" <==* English midi - facsimiles - ligatures - mensuration http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/ Alain Naigeon - - Strasbourg, France
James Kanze
Alex Marandon writes:
|> On 2004-02-05, wrote: |> [...du vécu...] |> > En ce qui concerne ton programme, est-ce que tu l'as vraiment |> > testé ?
|> Oui, j'ai constaté qu'il affichait la chaine attendue. Mais je |> devine que ton « vraiment » veut en dire plus qu'il n'en dit.
|> > Avec cout rédirigé vers un fichier sur un disque plein, par |> > exemple ?
|> Non. Où veux-tu en venir ?
Un programme correct ou bien fait ce qu'il doit faire (ici, mettre la chaîne "hello, world" dans le flux standard de sortie), ou bien signale une erreur, d'une façon ou d'autre, quand pour une raison quelconque il ne peut pas. Si le disque est plein, et cout est rédirigié vers un fichier disque, il est clair que la sortie n'aurait pas lieu. Alors, comment signale-t-il l'erreur ?
Quelque soit les autres signalisations prévues, un programme qui peut servir dans une chaîne de commande (dans un fichier batch, un fichier de make, etc.) ne doit jamais, mais vraiment jamais, renvoyer un code de réussit s'il n'a pas réussi.
-- James Kanze mailto: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
Alex Marandon <al@nospam.org> writes:
|> On 2004-02-05, kanze@gabi-soft.fr <kanze@gabi-soft.fr> wrote:
|> [...du vécu...]
|> > En ce qui concerne ton programme, est-ce que tu l'as vraiment
|> > testé ?
|> Oui, j'ai constaté qu'il affichait la chaine attendue. Mais je
|> devine que ton « vraiment » veut en dire plus qu'il n'en dit.
|> > Avec cout rédirigé vers un fichier sur un disque plein, par
|> > exemple ?
|> Non. Où veux-tu en venir ?
Un programme correct ou bien fait ce qu'il doit faire (ici, mettre la
chaîne "hello, world" dans le flux standard de sortie), ou bien
signale une erreur, d'une façon ou d'autre, quand pour une raison
quelconque il ne peut pas. Si le disque est plein, et cout est
rédirigié vers un fichier disque, il est clair que la sortie
n'aurait pas lieu. Alors, comment signale-t-il l'erreur ?
Quelque soit les autres signalisations prévues, un programme qui peut
servir dans une chaîne de commande (dans un fichier batch, un fichier
de make, etc.) ne doit jamais, mais vraiment jamais, renvoyer un code de
réussit s'il n'a pas réussi.
--
James Kanze mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
|> On 2004-02-05, wrote: |> [...du vécu...] |> > En ce qui concerne ton programme, est-ce que tu l'as vraiment |> > testé ?
|> Oui, j'ai constaté qu'il affichait la chaine attendue. Mais je |> devine que ton « vraiment » veut en dire plus qu'il n'en dit.
|> > Avec cout rédirigé vers un fichier sur un disque plein, par |> > exemple ?
|> Non. Où veux-tu en venir ?
Un programme correct ou bien fait ce qu'il doit faire (ici, mettre la chaîne "hello, world" dans le flux standard de sortie), ou bien signale une erreur, d'une façon ou d'autre, quand pour une raison quelconque il ne peut pas. Si le disque est plein, et cout est rédirigié vers un fichier disque, il est clair que la sortie n'aurait pas lieu. Alors, comment signale-t-il l'erreur ?
Quelque soit les autres signalisations prévues, un programme qui peut servir dans une chaîne de commande (dans un fichier batch, un fichier de make, etc.) ne doit jamais, mais vraiment jamais, renvoyer un code de réussit s'il n'a pas réussi.
-- James Kanze mailto: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93