Contenu | Rechercher | Menus

Annonce

Le forum rencontre en ce moment quelques soucis de charge, il est possible qu'une erreur soit affichée quand vous postez un message, ne rechargez pas la page au risque de poster une seconde fois votre message

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 09/11/2009, à 23:19

mon script plante causée par une ancienne version. == RESOLU

Bonsoir à tous et à toutes,

excusez moi mais je teste mon script et sa ne marche pas. la compilation me renvoie que j'utilise un ancien style de déclaration de fonction.
je vous montre un code que je fais que je compile.

#include <stdio.h>
#include <stdlib.h>

int triple(int nombre)
{
    return 3 * nombre;
}

int main (int argc, char *argv[])
{
    int nombreEntre = 0;
    printf (" Veuillez un nombre! \n");
    scanf ("%d", &nombreEntre);

   nombreTriple = triple (nombreEntre);
   printf ("Le triple de votre nombe est %d\n", nombreTriple);

  return 0;
}

Merci de bien vouloir me dire ce que je dois faire à part un sudo apt-get update, qui ne resoud rien dans mon cas.
franchement je sèche. J'ai fait la mise à niveau de ma distribution sans succès et je suis revenu sur mon 9.04.
Merci de me venir en aide.

Dernière modification par herzak (Le 11/11/2009, à 12:32)

Hors ligne

#2 Le 10/11/2009, à 09:26

Re : mon script plante causée par une ancienne version. == RESOLU

Comment fais tu pour compiler ton code et quelles sont exactement les messages d'erreurs qu'ils te renvoie

Hors ligne

#3 Le 10/11/2009, à 10:20

Re : mon script plante causée par une ancienne version. == RESOLU

Bonjour,
voilà comment je compile mon code

 gcc fonction.c -o fonction

et voici le message que je reçois

fonction.c: In function ‘triple’:
fonction.c:6: erreur: ‘nombre’ redeclared as different kind of symbol
fonction.c:4: erreur: previous definition of ‘nombre’ was here
fonction.c: In function ‘main’:
fonction.c:14: erreur: parameter ‘nombreEntree’ is initialized
fonction.c:14: erreur: parameter ‘nombreTriple’ is initialized
fonction.c:15: erreur: déclaration de paramètre d'ancien style dans la définition prototypée de fonction
fonction.c:17: erreur: ‘nombreEntree’ undeclared (first use in this function)
fonction.c:17: erreur: (Each undeclared identifier is reported only once
fonction.c:17: erreur: for each function it appears in.)
fonction.c:19: erreur: ‘nombreTriple’ undeclared (first use in this function)

Merci de votre aide.

Hors ligne

#4 Le 10/11/2009, à 18:55

Re : mon script plante causée par une ancienne version. == RESOLU

Pour ton source j'ai (je l'ai appelé toto... wink ) :

$ gcc toto.c 
toto.c: In function ‘main’:
toto.c:15: error: ‘nombreTriple’ undeclared (first use in this function)
toto.c:15: error: (Each undeclared identifier is reported only once
toto.c:15: error: for each function it appears in.)

Effectivement, nombreTriple n'est pas déclaré...
Avec le source :

#include <stdio.h>
#include <stdlib.h>

int triple(int nombre)
{
    return 3 * nombre;
}

int main (int argc, char *argv[])
{
    int nombreEntre = 0;
    printf (" Veuillez un nombre! \n");
    scanf ("%d", &nombreEntre);

   int nombreTriple = triple (nombreEntre);
   printf ("Le triple de votre nombe est %d\n", nombreTriple);

  return 0;
}

(j'ai rajouté int devant nombreTriple=...)
ça passe... et ça marche !

Pour info :

$gcc --version
gcc (Ubuntu 4.4.1-4ubuntu8) 4.4.1
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Linux-Mint Maya 64 Cinnamon sur Toshiba Satellite P200-1BY. Linux-Mint  Nadia 64 Cinnamon sur Compaq Presario SR5617FR

Hors ligne

#5 Le 10/11/2009, à 20:55

Re : mon script plante causée par une ancienne version. == RESOLU

Merci pour ton aide,
mais sa ne fonctionne toujours pas et j'ai les mêmes erreurs.
j'ai vérifié la version du logiciel gcc installé sur ma distribution et voilà ce que j'obtiens:

gcc --version
gcc (Ubuntu 4.3.3-5ubuntu4) 4.3.3
Copyright © 2008 Free Software Foundation, Inc.
Ce logiciel est libre; voir les sources pour les conditions de copie.  Il n'y a PAS
GARANTIE; ni implicite pour le MARCHANDAGE ou pour un BUT PARTICULIE

je l'ai compilé comme vous

gcc fonction.c

mais aussi sa ne donne rien.
Bon je crois qu'il ne me reste plus le choix que de désinstaller "gcc et sa suite" pour la réinstaller de sorte à être au même niveau que vous les pros.
Merci

nb: Après avoir désinstallé puis réinstallé "build-essential; fakeroot; et chekinstall" ma version reste toujours à 4.3.3.
S'il vous comment dois-je m'y prendre pour passer gcc à 4.4.1
Merci

Dernière modification par herzak (Le 10/11/2009, à 22:20)

Hors ligne

#6 Le 10/11/2009, à 23:39

Re : mon script plante causée par une ancienne version. == RESOLU

Merci à vous de m'avoir mis sur la piste.
Après plusieurs manipulations ma compilation marche avec la version 4.3.3 du logiciel  gcc.
Mais je rencontre une erreur de retour de la variable nombreTriple( qui renvoit ce que je l'affecte dès sa déclaration).
Je vais essayer de corriger à mon niveau et ensuite si je n'y arrive pas je vous montrerais mon code question d'avoir votre avis.
Merci et bonne nuit

Hors ligne

#7 Le 11/11/2009, à 10:34

Re : mon script plante causée par une ancienne version. == RESOLU

Je ne pense pas que ce soit la version de gcc qui soit en cause. Ce code tourne depuis "la nuit des temps". Pour info, c'est le gcc standard de Karmic (je sais, faut mettre à jour ma signature...).


Linux-Mint Maya 64 Cinnamon sur Toshiba Satellite P200-1BY. Linux-Mint  Nadia 64 Cinnamon sur Compaq Presario SR5617FR

Hors ligne

Haut de page ↑