j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
retournee soit 0.
Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
systematiquement 1..
Nous avons tous les deux appris avec des methodes differentes, chacune
d'entre elles affirme qu'il FAUT retourner une valeur en particulier
et impose cette valeur.. Pourquoi?
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
retournee soit 0.
Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
systematiquement 1..
Nous avons tous les deux appris avec des methodes differentes, chacune
d'entre elles affirme qu'il FAUT retourner une valeur en particulier
et impose cette valeur.. Pourquoi?
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
retournee soit 0.
Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
systematiquement 1..
Nous avons tous les deux appris avec des methodes differentes, chacune
d'entre elles affirme qu'il FAUT retourner une valeur en particulier
et impose cette valeur.. Pourquoi?
Bonsoir,
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
retournee soit 0.
Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
systematiquement 1..
Nous avons tous les deux appris avec des methodes differentes, chacune
d'entre elles affirme qu'il FAUT retourner une valeur en particulier
et impose cette valeur.. Pourquoi?
Bonsoir,
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
retournee soit 0.
Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
systematiquement 1..
Nous avons tous les deux appris avec des methodes differentes, chacune
d'entre elles affirme qu'il FAUT retourner une valeur en particulier
et impose cette valeur.. Pourquoi?
Bonsoir,
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
retournee soit 0.
Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
systematiquement 1..
Nous avons tous les deux appris avec des methodes differentes, chacune
d'entre elles affirme qu'il FAUT retourner une valeur en particulier
et impose cette valeur.. Pourquoi?
Greydavayar écrivit :
> j'ai appris le C avec la notion suivante : la fonction main doit
> TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
> Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
> retournee soit 0.
Ce n'est pas imposé, c'est une convention, comme d'habitude tu peux en
choisir une autre.
Cela étant, c'est clairement dit dans la norme, quoique ce ne soit pas
direct :
- cela ne s'applique que pour les applications « hébergées »
- la valeur retournée par main est passé à exit
- exit(0) dénote le succès, à charge à l'environnement (le com pilateur)
de magouiller si nécessaire pour l'information transmise soit «suc cès»!
> Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
> systematiquement 1..
Une autre convention, dont j'ajouterai qu'elle est moins répandue.
> Nous avons tous les deux appris avec des methodes differentes, chacune
> d'entre elles affirme qu'il FAUT retourner une valeur en particulier
> et impose cette valeur.. Pourquoi?
Pourquoi quoi ? Pourquoi tous les deux, pourquoi appris, pourquoi
différentes (la réponse est ci-dessus), pourquoi il faut, pourquoi 0 (la
raison c'est le shell de Unix qui considère que 0 = OK), pourquoi 1
(bonne question)
Antoine
Greydavayar écrivit :
> j'ai appris le C avec la notion suivante : la fonction main doit
> TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
> Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
> retournee soit 0.
Ce n'est pas imposé, c'est une convention, comme d'habitude tu peux en
choisir une autre.
Cela étant, c'est clairement dit dans la norme, quoique ce ne soit pas
direct :
- cela ne s'applique que pour les applications « hébergées »
- la valeur retournée par main est passé à exit
- exit(0) dénote le succès, à charge à l'environnement (le com pilateur)
de magouiller si nécessaire pour l'information transmise soit «suc cès»!
> Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
> systematiquement 1..
Une autre convention, dont j'ajouterai qu'elle est moins répandue.
> Nous avons tous les deux appris avec des methodes differentes, chacune
> d'entre elles affirme qu'il FAUT retourner une valeur en particulier
> et impose cette valeur.. Pourquoi?
Pourquoi quoi ? Pourquoi tous les deux, pourquoi appris, pourquoi
différentes (la réponse est ci-dessus), pourquoi il faut, pourquoi 0 (la
raison c'est le shell de Unix qui considère que 0 = OK), pourquoi 1
(bonne question)
Antoine
Greydavayar écrivit :
> j'ai appris le C avec la notion suivante : la fonction main doit
> TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
> Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
> retournee soit 0.
Ce n'est pas imposé, c'est une convention, comme d'habitude tu peux en
choisir une autre.
Cela étant, c'est clairement dit dans la norme, quoique ce ne soit pas
direct :
- cela ne s'applique que pour les applications « hébergées »
- la valeur retournée par main est passé à exit
- exit(0) dénote le succès, à charge à l'environnement (le com pilateur)
de magouiller si nécessaire pour l'information transmise soit «suc cès»!
> Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
> systematiquement 1..
Une autre convention, dont j'ajouterai qu'elle est moins répandue.
> Nous avons tous les deux appris avec des methodes differentes, chacune
> d'entre elles affirme qu'il FAUT retourner une valeur en particulier
> et impose cette valeur.. Pourquoi?
Pourquoi quoi ? Pourquoi tous les deux, pourquoi appris, pourquoi
différentes (la réponse est ci-dessus), pourquoi il faut, pourquoi 0 (la
raison c'est le shell de Unix qui considère que 0 = OK), pourquoi 1
(bonne question)
Antoine
Je te remercie j'y vois plus clair, qu'entends tu par "applications «
hébergées »"?
Je te remercie j'y vois plus clair, qu'entends tu par "applications «
hébergées »"?
Je te remercie j'y vois plus clair, qu'entends tu par "applications «
hébergées »"?
In article com>,
Greydavayar wrote:
>Je te remercie j'y vois plus clair, qu'entends tu par "applications «
>hébergées »"?
Ce que j'appelle "hosted" dans ma reponse (je ne connais pas de traductio n
satisfaisante), par opposition a freestanding (embarque, la c'est plus si mple).
La norme du C couvre a peu pres tout (sauf VMS C, apparemment), y compris ta
montre. En general, sur une montre, des concepts tels que le demarrage du
programme, ou stdin/stdout, ou malloc, n'ont que peu de sens. La norme se
decoupe ainsi en "le langage a proprement parler" et "l'environnement cla ssique
d'execution". Si ton environnement est "heberge"/hosted, ca veut dire que tu
tournes sur quelque chose qui ressemble assez a un ordinateur classique p our
avoir entrees/sorties, demarrage de programme, allocation memoire... et t out
ceci est alors defini. Sinon, ben tu es dans le domaine de l'embarque, et la
norme te dit juste que la documentation de ton environnement DOIT expliqu er
comment tous ces aspects marchent.
(note au passage: un systeme conforme a la norme correspond generalement a
une machine, un compilateur, et un jeu d'options. Par exemple, tu peux
tres bien avoir un compilo sous Windows qui se proclame ANSI, a partir du
moment ou la documentation te dit quelles options utiliser pour etre en C
ANSI, en particulier recuperer un main() de type "ligne de commande" et d es
entrees-sortie stdin/stdout qui fonctionnent)
In article <bc2d7bea-6029-46ee-a399-91668b45c...@h7g2000yqn.googlegroups. com>,
Greydavayar <isi...@aol.fr> wrote:
>Je te remercie j'y vois plus clair, qu'entends tu par "applications «
>hébergées »"?
Ce que j'appelle "hosted" dans ma reponse (je ne connais pas de traductio n
satisfaisante), par opposition a freestanding (embarque, la c'est plus si mple).
La norme du C couvre a peu pres tout (sauf VMS C, apparemment), y compris ta
montre. En general, sur une montre, des concepts tels que le demarrage du
programme, ou stdin/stdout, ou malloc, n'ont que peu de sens. La norme se
decoupe ainsi en "le langage a proprement parler" et "l'environnement cla ssique
d'execution". Si ton environnement est "heberge"/hosted, ca veut dire que tu
tournes sur quelque chose qui ressemble assez a un ordinateur classique p our
avoir entrees/sorties, demarrage de programme, allocation memoire... et t out
ceci est alors defini. Sinon, ben tu es dans le domaine de l'embarque, et la
norme te dit juste que la documentation de ton environnement DOIT expliqu er
comment tous ces aspects marchent.
(note au passage: un systeme conforme a la norme correspond generalement a
une machine, un compilateur, et un jeu d'options. Par exemple, tu peux
tres bien avoir un compilo sous Windows qui se proclame ANSI, a partir du
moment ou la documentation te dit quelles options utiliser pour etre en C
ANSI, en particulier recuperer un main() de type "ligne de commande" et d es
entrees-sortie stdin/stdout qui fonctionnent)
In article com>,
Greydavayar wrote:
>Je te remercie j'y vois plus clair, qu'entends tu par "applications «
>hébergées »"?
Ce que j'appelle "hosted" dans ma reponse (je ne connais pas de traductio n
satisfaisante), par opposition a freestanding (embarque, la c'est plus si mple).
La norme du C couvre a peu pres tout (sauf VMS C, apparemment), y compris ta
montre. En general, sur une montre, des concepts tels que le demarrage du
programme, ou stdin/stdout, ou malloc, n'ont que peu de sens. La norme se
decoupe ainsi en "le langage a proprement parler" et "l'environnement cla ssique
d'execution". Si ton environnement est "heberge"/hosted, ca veut dire que tu
tournes sur quelque chose qui ressemble assez a un ordinateur classique p our
avoir entrees/sorties, demarrage de programme, allocation memoire... et t out
ceci est alors defini. Sinon, ben tu es dans le domaine de l'embarque, et la
norme te dit juste que la documentation de ton environnement DOIT expliqu er
comment tous ces aspects marchent.
(note au passage: un systeme conforme a la norme correspond generalement a
une machine, un compilateur, et un jeu d'options. Par exemple, tu peux
tres bien avoir un compilo sous Windows qui se proclame ANSI, a partir du
moment ou la documentation te dit quelles options utiliser pour etre en C
ANSI, en particulier recuperer un main() de type "ligne de commande" et d es
entrees-sortie stdin/stdout qui fonctionnent)
In article ,
Greydavayar wrote:Bonsoir,
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
retournee soit 0.
Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
systematiquement 1..
Cet eleve a tort. Il a du reussir a passer a travers les quelques cours qu'ils
ont... en particulier, ils apprennent quand meme entre autres a coder sur Unix,
et il *faut* retourner 0 pour que ca ait un sens pour le shell. 1 signifie
que le programme s'est termine en erreur.
In article <b817b237-ce04-418a-a609-63a67703fadf@f6g2000yqa.googlegroups.com>,
Greydavayar <isirda@aol.fr> wrote:
Bonsoir,
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
retournee soit 0.
Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
systematiquement 1..
Cet eleve a tort. Il a du reussir a passer a travers les quelques cours qu'ils
ont... en particulier, ils apprennent quand meme entre autres a coder sur Unix,
et il *faut* retourner 0 pour que ca ait un sens pour le shell. 1 signifie
que le programme s'est termine en erreur.
In article ,
Greydavayar wrote:Bonsoir,
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
retournee soit 0.
Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
systematiquement 1..
Cet eleve a tort. Il a du reussir a passer a travers les quelques cours qu'ils
ont... en particulier, ils apprennent quand meme entre autres a coder sur Unix,
et il *faut* retourner 0 pour que ca ait un sens pour le shell. 1 signifie
que le programme s'est termine en erreur.
Bonsoir,
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
retournee soit 0.
Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
systematiquement 1..
Nous avons tous les deux appris avec des methodes differentes, chacune
d'entre elles affirme qu'il FAUT retourner une valeur en particulier
et impose cette valeur.. Pourquoi?
Bonsoir,
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
retournee soit 0.
Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
systematiquement 1..
Nous avons tous les deux appris avec des methodes differentes, chacune
d'entre elles affirme qu'il FAUT retourner une valeur en particulier
et impose cette valeur.. Pourquoi?
Bonsoir,
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
retournee soit 0.
Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
systematiquement 1..
Nous avons tous les deux appris avec des methodes differentes, chacune
d'entre elles affirme qu'il FAUT retourner une valeur en particulier
et impose cette valeur.. Pourquoi?
On 8 sep, 17:48, Greydavayar wrote:Bonsoir,
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
0 ou EXIT_SUCCESS
Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
retournee soit 0.
Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
systematiquement 1..
Ca, c'est une ânerie. 1 signifie erreur sur la plupart des systèmes.
Nous avons tous les deux appris avec des methodes differentes, chacune
d'entre elles affirme qu'il FAUT retourner une valeur en particulier
et impose cette valeur.. Pourquoi?
Parce que le système attend une valeur précise. Les valeurs portables
(tous systèmes) sont
EXIT_SUCCESS /* OK */
EXIT_FAILURE /* KO */
définies dans <stdlib.h>. La valeur réelle dépend du système.
Avec ces constantes, on est certain de retourner les bonnes valeurs au
système.
On 8 sep, 17:48, Greydavayar <isi...@aol.fr> wrote:
Bonsoir,
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
0 ou EXIT_SUCCESS
Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
retournee soit 0.
Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
systematiquement 1..
Ca, c'est une ânerie. 1 signifie erreur sur la plupart des systèmes.
Nous avons tous les deux appris avec des methodes differentes, chacune
d'entre elles affirme qu'il FAUT retourner une valeur en particulier
et impose cette valeur.. Pourquoi?
Parce que le système attend une valeur précise. Les valeurs portables
(tous systèmes) sont
EXIT_SUCCESS /* OK */
EXIT_FAILURE /* KO */
définies dans <stdlib.h>. La valeur réelle dépend du système.
Avec ces constantes, on est certain de retourner les bonnes valeurs au
système.
On 8 sep, 17:48, Greydavayar wrote:Bonsoir,
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
0 ou EXIT_SUCCESS
Or, je n'ai vu aucun passage dans la norme qui impose que la valeur
retournee soit 0.
Et recemment, j'ai discute avec un eleve d'EPITECH qui lui retournait
systematiquement 1..
Ca, c'est une ânerie. 1 signifie erreur sur la plupart des systèmes.
Nous avons tous les deux appris avec des methodes differentes, chacune
d'entre elles affirme qu'il FAUT retourner une valeur en particulier
et impose cette valeur.. Pourquoi?
Parce que le système attend une valeur précise. Les valeurs portables
(tous systèmes) sont
EXIT_SUCCESS /* OK */
EXIT_FAILURE /* KO */
définies dans <stdlib.h>. La valeur réelle dépend du système.
Avec ces constantes, on est certain de retourner les bonnes valeurs au
système.
Le Thu, 9 Sep 2010 00:25:18 -0700 (PDT),
-ed- écrivait :On 8 sep, 17:48, Greydavayar wrote:Bonsoir,
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
0 ou EXIT_SUCCESS
0, c'est parfois casse-gueule, comme une valeur non nulle en cas
d'erreur est aussi casse-gueule.
Je viens de me faire avoir par un script autoconf.
Le Thu, 9 Sep 2010 00:25:18 -0700 (PDT),
-ed- <emmanuel.delahaye@gmail.com> écrivait :
On 8 sep, 17:48, Greydavayar <isi...@aol.fr> wrote:
Bonsoir,
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
0 ou EXIT_SUCCESS
0, c'est parfois casse-gueule, comme une valeur non nulle en cas
d'erreur est aussi casse-gueule.
Je viens de me faire avoir par un script autoconf.
Le Thu, 9 Sep 2010 00:25:18 -0700 (PDT),
-ed- écrivait :On 8 sep, 17:48, Greydavayar wrote:Bonsoir,
j'ai appris le C avec la notion suivante : la fonction main doit
TOUJOURS retourner 0 sinon, c'est qu'une erreur s'est produite.
0 ou EXIT_SUCCESS
0, c'est parfois casse-gueule, comme une valeur non nulle en cas
d'erreur est aussi casse-gueule.
Je viens de me faire avoir par un script autoconf.
JKB écrivit :
Huh ?
Sur une implémentation Posix, EXIT_SUCCESS est forcément égal à 0.
Et essayer autoconf ailleurs, c'est vraiment avoir une passion pour les
problèmes.
JKB écrivit :
Huh ?
Sur une implémentation Posix, EXIT_SUCCESS est forcément égal à 0.
Et essayer autoconf ailleurs, c'est vraiment avoir une passion pour les
problèmes.
JKB écrivit :
Huh ?
Sur une implémentation Posix, EXIT_SUCCESS est forcément égal à 0.
Et essayer autoconf ailleurs, c'est vraiment avoir une passion pour les
problèmes.