Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Richard Delorme
Bonjour,
Je me pose une question de logique. Pourquoi la fonction Main doit renvoyer un int, il serait logique qu'elle renvoit un void, non? Je comprends pas.
La valeur retournée par main permet de dire à l'environnement qui a exécuté le programme la réussite ou un éventuel échec du programme. C'est particulièrement utile quand on exécute le programme depuis un shell Unix, qui sait tenir compte de la valeur renvoyée, par exemple : $ programme1 && programme2 exécute progamme1 et puis programme2 si et seulement si programme1 n'a pas échoué.
Évidemment, cela n'a pas de sens sur tous les systèmes, mais il existe un lien historique entre Unix, C et C++, qui fait que c'est un int qui est renvoyé et que la valeur 0 indique le succès du programme.
-- Richard
Bonjour,
Je me pose une question de logique.
Pourquoi la fonction Main doit renvoyer un int, il serait logique
qu'elle renvoit un void, non?
Je comprends pas.
La valeur retournée par main permet de dire à l'environnement qui a
exécuté le programme la réussite ou un éventuel échec du programme.
C'est particulièrement utile quand on exécute le programme depuis un
shell Unix, qui sait tenir compte de la valeur renvoyée, par exemple :
$ programme1 && programme2
exécute progamme1 et puis programme2 si et seulement si programme1 n'a
pas échoué.
Évidemment, cela n'a pas de sens sur tous les systèmes, mais il existe
un lien historique entre Unix, C et C++, qui fait que c'est un int qui
est renvoyé et que la valeur 0 indique le succès du programme.
Je me pose une question de logique. Pourquoi la fonction Main doit renvoyer un int, il serait logique qu'elle renvoit un void, non? Je comprends pas.
La valeur retournée par main permet de dire à l'environnement qui a exécuté le programme la réussite ou un éventuel échec du programme. C'est particulièrement utile quand on exécute le programme depuis un shell Unix, qui sait tenir compte de la valeur renvoyée, par exemple : $ programme1 && programme2 exécute progamme1 et puis programme2 si et seulement si programme1 n'a pas échoué.
Évidemment, cela n'a pas de sens sur tous les systèmes, mais il existe un lien historique entre Unix, C et C++, qui fait que c'est un int qui est renvoyé et que la valeur 0 indique le succès du programme.
-- Richard
Jean-Marc Bourguet
Windoz writes:
Bonjour,
Je me pose une question de logique. Pourquoi la fonction Main doit renvoyer un int, il serait logique qu'elle renvoit un void, non? Je comprends pas.
main est appele par du code de la bibliotheque C++ qui fait a peut pres
initialiser argc et argv exit(main(argc, argv));
Et la valeur passee a exit peut generalement etre testee (EXITSTATUS avec COMMAND.COM, $?/$status avec les shells d'origine unix).
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Windoz <windoz@tiscali.fr> writes:
Bonjour,
Je me pose une question de logique.
Pourquoi la fonction Main doit renvoyer un int, il serait logique
qu'elle renvoit un void, non?
Je comprends pas.
main est appele par du code de la bibliotheque C++ qui fait a peut
pres
initialiser argc et argv
exit(main(argc, argv));
Et la valeur passee a exit peut generalement etre testee (EXITSTATUS
avec COMMAND.COM, $?/$status avec les shells d'origine unix).
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Je me pose une question de logique. Pourquoi la fonction Main doit renvoyer un int, il serait logique qu'elle renvoit un void, non? Je comprends pas.
main est appele par du code de la bibliotheque C++ qui fait a peut pres
initialiser argc et argv exit(main(argc, argv));
Et la valeur passee a exit peut generalement etre testee (EXITSTATUS avec COMMAND.COM, $?/$status avec les shells d'origine unix).
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Amerio
La valeur retournée par main permet de dire à l'environnement qui a exécuté le programme la réussite ou un éventuel échec du programme. C'est particulièrement utile quand on exécute le programme depuis un shell Unix, qui sait tenir compte de la valeur renvoyée, par exemple : $ programme1 && programme2 exécute progamme1 et puis programme2 si et seulement si programme1 n'a pas échoué.
Évidemment, cela n'a pas de sens sur tous les systèmes, mais il existe un lien historique entre Unix, C et C++, qui fait que c'est un int qui est renvoyé et que la valeur 0 indique le succès du programme.
<mode pinaille=on> si je peux me permettre, ca serait alors plutot $ prog1 || prog2 pour executer prog 2 ssi prog 1 a échoué 0 indiquant tres souvent un succés, mais pas toujours, "your mileage may vary" ;-)
La valeur retournée par main permet de dire à l'environnement qui a
exécuté le programme la réussite ou un éventuel échec du programme. C'est
particulièrement utile quand on exécute le programme depuis un shell Unix,
qui sait tenir compte de la valeur renvoyée, par exemple :
$ programme1 && programme2
exécute progamme1 et puis programme2 si et seulement si programme1 n'a pas
échoué.
Évidemment, cela n'a pas de sens sur tous les systèmes, mais il existe un
lien historique entre Unix, C et C++, qui fait que c'est un int qui est
renvoyé et que la valeur 0 indique le succès du programme.
<mode pinaille=on>
si je peux me permettre, ca serait alors plutot
$ prog1 || prog2
pour executer prog 2 ssi prog 1 a échoué
0 indiquant tres souvent un succés, mais pas toujours, "your mileage may
vary" ;-)
La valeur retournée par main permet de dire à l'environnement qui a exécuté le programme la réussite ou un éventuel échec du programme. C'est particulièrement utile quand on exécute le programme depuis un shell Unix, qui sait tenir compte de la valeur renvoyée, par exemple : $ programme1 && programme2 exécute progamme1 et puis programme2 si et seulement si programme1 n'a pas échoué.
Évidemment, cela n'a pas de sens sur tous les systèmes, mais il existe un lien historique entre Unix, C et C++, qui fait que c'est un int qui est renvoyé et que la valeur 0 indique le succès du programme.
<mode pinaille=on> si je peux me permettre, ca serait alors plutot $ prog1 || prog2 pour executer prog 2 ssi prog 1 a échoué 0 indiquant tres souvent un succés, mais pas toujours, "your mileage may vary" ;-)
Amerio
$ programme1 && programme2 exécute progamme1 et puis programme2 si et seulement si programme1 n'a pas échoué.
Évidemment, cela n'a pas de sens sur tous les systèmes, mais il existe un lien historique entre Unix, C et C++, qui fait que c'est un int qui est renvoyé et que la valeur 0 indique le succès du programme.
<mode pinaille=on> si je peux me permettre, ca serait alors plutot $ prog1 || prog2 pour executer prog 2 ssi prog 1 a échoué 0 indiquant tres souvent un succés, mais pas toujours, "your mileage may vary" ;-)
Oops :-( chuis fatigué, vais allé me coucher J'avais lu t'a phrase sans la négation. Ton commentaire etait donc bon. J'avais en tete l'eternel 'monprg || exit(-1)' qu'on insere au milieu d'un script pour l'interrompre des qu'un pb est detecté...
$ programme1 && programme2
exécute progamme1 et puis programme2 si et seulement si programme1 n'a
pas échoué.
Évidemment, cela n'a pas de sens sur tous les systèmes, mais il existe un
lien historique entre Unix, C et C++, qui fait que c'est un int qui est
renvoyé et que la valeur 0 indique le succès du programme.
<mode pinaille=on>
si je peux me permettre, ca serait alors plutot
$ prog1 || prog2
pour executer prog 2 ssi prog 1 a échoué
0 indiquant tres souvent un succés, mais pas toujours, "your mileage may
vary" ;-)
Oops :-( chuis fatigué, vais allé me coucher
J'avais lu t'a phrase sans la négation. Ton commentaire etait donc bon.
J'avais en tete l'eternel
'monprg || exit(-1)' qu'on insere au milieu d'un script pour l'interrompre
des qu'un pb est detecté...
$ programme1 && programme2 exécute progamme1 et puis programme2 si et seulement si programme1 n'a pas échoué.
Évidemment, cela n'a pas de sens sur tous les systèmes, mais il existe un lien historique entre Unix, C et C++, qui fait que c'est un int qui est renvoyé et que la valeur 0 indique le succès du programme.
<mode pinaille=on> si je peux me permettre, ca serait alors plutot $ prog1 || prog2 pour executer prog 2 ssi prog 1 a échoué 0 indiquant tres souvent un succés, mais pas toujours, "your mileage may vary" ;-)
Oops :-( chuis fatigué, vais allé me coucher J'avais lu t'a phrase sans la négation. Ton commentaire etait donc bon. J'avais en tete l'eternel 'monprg || exit(-1)' qu'on insere au milieu d'un script pour l'interrompre des qu'un pb est detecté...
Anthony Fleury
Amerio wrote:
$ programme1 && programme2 exécute progamme1 et puis programme2 si et seulement si programme1 n'a pas échoué. <mode pinaille=on>
si je peux me permettre, ca serait alors plutot $ prog1 || prog2 pour executer prog 2 ssi prog 1 a échoué 0 indiquant tres souvent un succés, mais pas toujours, "your mileage may vary" ;-)
Oui mais là il disait n'a _pas_ échoué, c'est bien donc programme1 && programme2 :-)
Anthony -- Alan Turing thought about criteria to settle the question of whether machines can think, a question of which we now know that it is about as relevant as the question of whether submarines can swim. -- Dijkstra
Amerio wrote:
$ programme1 && programme2
exécute progamme1 et puis programme2 si et seulement si programme1 n'a
pas échoué.
<mode pinaille=on>
si je peux me permettre, ca serait alors plutot
$ prog1 || prog2
pour executer prog 2 ssi prog 1 a échoué
0 indiquant tres souvent un succés, mais pas toujours, "your mileage may
vary" ;-)
Oui mais là il disait n'a _pas_ échoué, c'est bien donc programme1 &&
programme2 :-)
Anthony
--
Alan Turing thought about criteria to settle the question of whether
machines can think, a question of which we now know that it is about as
relevant as the question of whether submarines can swim.
-- Dijkstra
$ programme1 && programme2 exécute progamme1 et puis programme2 si et seulement si programme1 n'a pas échoué. <mode pinaille=on>
si je peux me permettre, ca serait alors plutot $ prog1 || prog2 pour executer prog 2 ssi prog 1 a échoué 0 indiquant tres souvent un succés, mais pas toujours, "your mileage may vary" ;-)
Oui mais là il disait n'a _pas_ échoué, c'est bien donc programme1 && programme2 :-)
Anthony -- Alan Turing thought about criteria to settle the question of whether machines can think, a question of which we now know that it is about as relevant as the question of whether submarines can swim. -- Dijkstra
James Kanze
Windoz writes:
|> Je me pose une question de logique.
|> Pourquoi la fonction Main doit renvoyer un int,
Parce que la norme l'exige.
|> il serait logique qu'elle renvoit un void, non?
Il serait plutôt logique qu'elle renvoit un type défini par l'implémentation. On pourrait bien imaginer un système où le code de retour serait une chaîne de caractères, par exemple.
En revanche, il faut bien qu'elle renvoit quelque chose, parce qu'il faut bien pouvoir tester par la suite si le programme à réussi ou non.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Windoz <windoz@tiscali.fr> writes:
|> Je me pose une question de logique.
|> Pourquoi la fonction Main doit renvoyer un int,
Parce que la norme l'exige.
|> il serait logique qu'elle renvoit un void, non?
Il serait plutôt logique qu'elle renvoit un type défini par
l'implémentation. On pourrait bien imaginer un système où le code de
retour serait une chaîne de caractères, par exemple.
En revanche, il faut bien qu'elle renvoit quelque chose, parce qu'il
faut bien pouvoir tester par la suite si le programme à réussi ou non.
--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
|> Pourquoi la fonction Main doit renvoyer un int,
Parce que la norme l'exige.
|> il serait logique qu'elle renvoit un void, non?
Il serait plutôt logique qu'elle renvoit un type défini par l'implémentation. On pourrait bien imaginer un système où le code de retour serait une chaîne de caractères, par exemple.
En revanche, il faut bien qu'elle renvoit quelque chose, parce qu'il faut bien pouvoir tester par la suite si le programme à réussi ou non.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34