Débutant C

Fermé
Utilisateur anonyme - 28 juil. 2005 à 22:38
 Utilisateur anonyme - 30 juil. 2005 à 14:32
Bonjour

J'avais commencé le language C l'été dernier, mais dès septembre, mes profs m'ont fait crouler sur le travail, donc j'ai du ranger mon livre car je tenais à avoir mon bac...
Maintenant que je l'ai, je ressort mon livre que je regardai avec convoitise tout au long de l'année !
Bon je reprend depuis le début, parce que j'ai oublié plein de trucs...

Donc je refait les petits programmes du début, et mince alors... le 2ème marche pas... :
Le voici :

/* 02L02.c */
#include <stdlib.h>
#include <stdio.h>

void main ()
{
printf ("bonjour ! ceci est un programme C. \n");
exit(0)
}

Il surligne au premier {et le rapport est : 'main' must return 'int'

Je ne comprends pas l'erreur... Il me semble avoir bien respécté e qui est écrit que le bouquin...
Je me souviens qu'il y avait des erreurs dans quelques exemples, mais dès le début ça me semble louche :p
Ou est mon erreur ?

Merci beaucoup !
A bientot

+++
François

4 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
28 juil. 2005 à 23:04
Salut,

Tu auras plus de chances en déclarant ton main comme retournant un type entier:

int main()


Voir ici:
http://www.commentcamarche.net/c/ccarac.php3 (voir la note du visiteur).
Ensuite, je n'ai jamis vu exit(0) dans un code c.
C'est peut être correct, mais si tu as des soucis avec ça, remplace le par
return 0;


PS: Je viens de me renseigner sur le exit(), ça parait correct.
0
Utilisateur anonyme
28 juil. 2005 à 23:15
Merci pour ta réponse

En effet ça fonctionne bien avec int main()
mais le programme qui m'est proposé par le livre contient il une erreur alors ?
Parce que dans le lien que tu me donne, ils proposent pas void main()...
Tout ce qui est avec void est : main(void)

Merci bcp

+++
François
0
Utilisateur anonyme
29 juil. 2005 à 01:00
Je rajoute :

Le but de l'exo c'est d'utiliser void main ()
Ils disent que void enmpêche à la fonction main de donner une valeur en retour... mais que cela ne marche donc qu'avec exit() puisque return renvoie une valeur...

Comment faire alors pour concilier void main() avec exit() ?

Merci !
0
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 751
29 juil. 2005 à 01:37
En fait exit ça ne sert que dans le cas d'une fonction autre que main (pour interrompre l'exécution d'un programme), car pour un main un simple return suffit.

Et en général un exit dans une fonction c'est mal car il vaut mieux essayer de rattraper l'erreur ;)

Petite précision : si tu fais :
#include <stdio.h>
#include <stdlib.h>


void main( )
{
    printf("plop\n");
    exit(0);
}

La compilation donne :
plop.c:6: attention : le type de retour de « main » n'est pas « int »

Un warning n'empêche pas la compilation, ça indique juste qu'il y a un truc pas clean.

Pour régler le problème, cf ci-dessus. De toute façon, si tu programmes proprement, main retourne toujours un entier (le code d'exécution du programme, qui peut être récupérer par un autre programme). Ca permet notamment de contrôler ou non le bon déroulement d'un programme.
0
Utilisateur anonyme
30 juil. 2005 à 14:32
Merci bien pour toutes ces réponses.
C'est ok ça marche bien avec vos indications.

+++ !
François
0