Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

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

herzak

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

emile_b

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

herzak

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

serged

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.

LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

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

herzak

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

herzak

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

serged

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...).


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne