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

Résolu
baker95500 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   -  
baker95500 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   -
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 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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 93 Date d'inscription   Statut Membre Dernière intervention   11
 
Non merci beaucoup pour ton explication. merci =)

Et jolie signature
2
toto1983 Messages postés 205 Date d'inscription   Statut Membre Dernière intervention   13
 
Bravo pour ces brillantissimes explications :)
1
toto1983 Messages postés 205 Date d'inscription   Statut Membre Dernière intervention   13
 
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 93 Date d'inscription   Statut Membre Dernière intervention   11
 
Merci =)
-1
toto1983 Messages postés 205 Date d'inscription   Statut Membre Dernière intervention   13
 
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
Malek
 
Ce qui est complètement faux, puisque void main() n'existe pas et n'est pas dans la Norme.
0
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663 > Malek
 
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