[C]"Void main" ou "int main (void)&

Résolu/Fermé
baker95500
Messages postés
92
Date d'inscription
dimanche 18 janvier 2009
Statut
Membre
Dernière intervention
22 novembre 2012
- 20 nov. 2009 à 11:27
baker95500
Messages postés
92
Date d'inscription
dimanche 18 janvier 2009
Statut
Membre
Dernière intervention
22 novembre 2012
- 24 nov. 2009 à 11:11
Bonjour a tous,

Je voudrais connaitre la difference entre

Le " void main() "

Et le " int main(void) "

Merci =)

6 réponses

fiddy
Messages postés
11067
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 811
20 nov. 2009 à 19:36
Salut,
J'apporte un complément d'informations.
void main() n'est pas standard, de même que main(). Ces versions sont apparus en C K&R. Mais depuis ISO est apparue, et la norme a tranché. Les deux seuls prototypes standards de main() sont :
int main(void);
int main(int argc, int char **argv);
(on peut écrire char *argv[]) également.

Rien d'autre.

Ensuite, pour les différences entre void toto() et int toto(void);
void toto() signifie que la fonction toto ne renverra aucune valeur. Mais attention, la fonction n'est pas bien définie puisqu'on ne spécifie pas les arguments. Il faut mettre void toto(void) pour spécifier au compilateur que la fonction ne prend aucun argument.

int toto(void); signifie que la fonction renverra une variable de type int et qu'elle accepte 0 argument.

Cdlt
13
baker95500
Messages postés
92
Date d'inscription
dimanche 18 janvier 2009
Statut
Membre
Dernière intervention
22 novembre 2012
11
20 nov. 2009 à 11:33
Non merci beaucoup pour ton explication. merci =)

Et jolie signature
2
toto1983
Messages postés
205
Date d'inscription
samedi 16 mai 2009
Statut
Membre
Dernière intervention
25 mars 2010
13
23 nov. 2009 à 10:48
Bravo pour ces brillantissimes explications :)
1
toto1983
Messages postés
205
Date d'inscription
samedi 16 mai 2009
Statut
Membre
Dernière intervention
25 mars 2010
13
20 nov. 2009 à 11:36
héhéhé n'est-ce pas ?
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
baker95500
Messages postés
92
Date d'inscription
dimanche 18 janvier 2009
Statut
Membre
Dernière intervention
22 novembre 2012
11
24 nov. 2009 à 11:11
Merci =)
-1
toto1983
Messages postés
205
Date d'inscription
samedi 16 mai 2009
Statut
Membre
Dernière intervention
25 mars 2010
13
20 nov. 2009 à 11:31
C'est simple ?

int main(void) te permet de retourner une variable : un entier avec en paramètre une variable vide (void toto;) tandisque void main() te permet de ne rien retourner en fait elle se contente d'exécuter

D'autres questions ?
-2
Ce qui est complètement faux, puisque void main() n'existe pas et n'est pas dans la Norme.
0
Pacorabanix
Messages postés
3245
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
656 > Malek
20 nov. 2009 à 20:45
void main() n'est pas dans la norme, ce n'est pas du C correct, mais elle "existe" dans les faits car plusieurs compilateurs permettent tout de même d'écrire cela.

Et même des professeurs d'informatique le montrent comme ceci aux débutants!
Bien que je ne partage pas cette manière de faire, ceci leur permet d'éluder le pourquoi du comment main() est de type int, alors que les élèves ne savent même pas ce qu'est une fonction, et même s'ils l'apprennent vite ils n'ont peut-être que très peu de bases d'informatique en général (pourquoi le programme renverrait-il qqchose ?)

N'en voulez pas trop à cette personne de poser la question!
0