IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

erreur de compilation


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2002
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 214
    Par défaut erreur de compilation
    Bonjour , j'ai crée ce programme en C :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #include <stdio.h>
     
    main()
     
    {
     
    int fahr, celsius;
    int mini, maxi, intervalle;
     
    mini = 0;
    maxi = 300;
    intervalle = 20;
     
    fahr = mini;
    while(fahr <= maxi)
    {
    celsius = 5 * (fahr-32) / 9
    printf("%d\t%d\n", fahr, celsius);
    fahr = fahr + intervalle;
    }
    }
    Alors moi je ne vois aucune erreur dans ce programme , mais quand je l'enregistre avec emacs ( C-x , C-s ) , j'ai donc mon fichier coucou.c dans mon répertoire , et quand je tape cat coucou.c , j'ai l'affichage du contenu du fichier , à part que à printf , il manque le f , c'est normal?
    Par ailleurs , quand je tape gcc coucou.c -o lalala , j'ai un message dans le shell du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    error : in function main :
     
    intervalle undeclared ( first use in this function)
    ( each undeclared identifier is reported only once for each function it appears in . )
    Quelqu'un a une idée du problème?
    merci

  2. #2
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    celsius = 5 * (fahr-32) / 9
    manquerait pas un ';' ?
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 146
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <stdio.h> 
     
    int main() { 
     
     int fahr, celsius; 
     int mini, maxi, intervalle; 
     
     mini = 0; 
     maxi = 300; 
     intervalle = 20; 
     
     fahr = mini; 
     while(fahr <= maxi) 
     { 
     celsius = 5 * (fahr-32) / 9;
     printf("%d\t%d\n", fahr, celsius); 
     fahr = fahr + intervalle; 
     } 
     return 0;
     }
    pour moi on ajoute return 0; en plus

  4. #4
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut
    Citation Envoyé par Jfrancois57
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <stdio.h> 
     
    int main() { 
     
     int fahr, celsius; 
     int mini, maxi, intervalle; 
     
     mini = 0; 
     maxi = 300; 
     intervalle = 20; 
     
     fahr = mini; 
     while(fahr <= maxi) 
     { 
     celsius = 5 * (fahr-32) / 9;
     printf("%d\t%d\n", fahr, celsius); 
     fahr = fahr + intervalle; 
     } 
     return 0;
     }
    pour moi on ajoute return 0; en plus
    Déontologiquement, c'est mal de faire un main qui renvoie void et de ne pas faire de return, mais ça n'a jamais provoqué d'erreur de compilation. Peut être un warning ceci dit.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2002
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 214
    Par défaut
    je n'ai malheuresement tjs pas de solution à mon problème , pourtant ya pas de raison que çà compile pas , pourquoi ce message d'erreur , je suis perdu là

  6. #6
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par ggnore
    Déontologiquement, c'est mal de faire un main qui renvoie void
    Il n'y a pas que la déontologie qui ai en jeu, mais aussi le fonctionnement du système, que devient la commande shell :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ ./ton_programme && ls
    Si tu ne renvoi pas de valeur au système pour savoir si l'exécution à réussie.

    Citation Envoyé par ggnore
    et de ne pas faire de return, mais ça n'a jamais provoqué d'erreur de compilation. Peut être un warning ceci dit.
    Compilateur mal réglé : par défaut, en c90, le type de retour d'une fonction est int et non void donc :
    est correcte mais pas l'absence de return.

    avec gcc, voici une options qui devraiten te permettre d'éviter les erreurs les plus flagrantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -Wall -Werror -O2 -ansi -pedantic
    S'il subsiste un problème alors que la compilation a réussie, tu lis Les erreurs courantes en C et si ton erreur ne s'y trouve pas, nous sommes là pour t'aider

  7. #7
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut
    J'ai osé mon p'tit ton quant à la déontologie parceque je savais être dans un forum non spécialisé dans le langage C.

    Maintenant que j'y suis, j'ai un peu honte

    J'espère qu'Emmanuel Delahaye ne jettera pas de coup d'oeil à ce thread, san quoi je vais être crucifié puis brûlé

    Quoi qu'il en soit ce que je voulais dire, c'est que, à ma connaissance, ne pas typer main et ne pas mettre de return ne crée pas d'erreur (sauf si on demande à gcc d'être fanatique, hum pedantic)


    Au posteur original :
    L'erreur est la même avec le ';' ?
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 146
    Par défaut
    cela fonctionne bien avec Eclipse et le plug-ing CDT (pas erreur)

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 146
    Par défaut
    Réponse
    0 -17
    20 -6
    40 4
    60 15
    80 26
    100 37
    120 48
    140 60
    160 71
    180 82
    200 93
    220 104
    240 115
    260 126
    280 137
    300 148

Discussions similaires

  1. Erreur de compilation après modification du Uses
    Par DevelOpeR13 dans le forum Langage
    Réponses: 5
    Dernier message: 30/10/2007, 14h23
  2. Réponses: 2
    Dernier message: 23/09/2003, 14h32
  3. Réponses: 10
    Dernier message: 22/09/2003, 21h58
  4. Réponses: 4
    Dernier message: 27/08/2003, 21h34
  5. Réponses: 2
    Dernier message: 04/03/2003, 23h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo