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 :

besoin d'aide dans un prototype


Sujet :

C

  1. #1
    Membre du Club Avatar de amigauss
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 119
    Points : 54
    Points
    54
    Par défaut besoin d'aide dans un prototype
    Bonjour;

    je travail sur un programme en C déjà programmé.
    Mon probleme est que j'ai troouvé des declaration des fonctions de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int fct1(x)
    int x;
    {
        ... //corps de la fonction
    }
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    fct2(a,b)
    char a;
    char b;
    {
      ...
    }
    est ce que vous pouvez m'expliquer qu'est ce que veut dire ces declarations ??
    merci

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 860
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 860
    Points : 3 444
    Points
    3 444
    Par défaut
    Salut,

    C'est juste une méthode dépassé de déclaration de fonction; On donne les types des arguments après la signature.

    Il faut remplacer par le format suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    fct2(a,b)
    char a;
    char b;
    {
      ...
    }
    devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void fct2( char a, char b) {
      ...
    }
    A+

  3. #3
    Membre du Club Avatar de amigauss
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 119
    Points : 54
    Points
    54
    Par défaut
    merci beaucoup

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par KiLVaiDeN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    fct2(a,b)
    char a;
    char b;
    {
      ...
    }
    devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void fct2( char a, char b) {
      ...
    }
    Si besoin est, il existe un outil appelé 'protoize' qui, en principe, permet de modifier les code source automatiquement...

    Jamais utilisé... (toujours fait à la main, c'est d'un chi*nt...)

  5. #5
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par KiLVaiDeN
    Salut,

    C'est juste une méthode dépassé de déclaration de fonction; On donne les types des arguments après la signature.

    Il faut remplacer par le format suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    fct2(a,b)
    char a;
    char b;
    {
      ...
    }
    devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void fct2( char a, char b) {
      ...
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int fct2( char a, char b) {
      ...
    }
    S'il n'y a rien de spécifié, c'est implicitement int. Et attention avec des arguments char dans un vieux programme: il faut que l'appelant voit un prototype pour que l'appel se fasse correctement (les char sont promus en int dans les appels sans prototype).

  6. #6
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 860
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 860
    Points : 3 444
    Points
    3 444
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int fct2( char a, char b) {
      ...
    }
    S'il n'y a rien de spécifié, c'est implicitement int. Et attention avec des arguments char dans un vieux programme: il faut que l'appelant voit un prototype pour que l'appel se fasse correctement (les char sont promus en int dans les appels sans prototype).
    Merci pour l'info, je ne savais pas, j'ai eu très peu l'occasion de faire ce genre de transformation, et c'était il y a longtemps; Je me rappelle d'un K&R qui utilisait encore cette syntaxe

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. besoin d'aide dans un petit exercice
    Par midoutn dans le forum PowerAMC
    Réponses: 0
    Dernier message: 28/11/2009, 19h40
  2. Besoin d'aide dans la gestion des Boutons
    Par tiyolx dans le forum IHM
    Réponses: 2
    Dernier message: 15/05/2008, 14h25
  3. [langage] Besoin d'aide dans mon codage
    Par frees3x dans le forum Langage
    Réponses: 4
    Dernier message: 08/11/2006, 08h21

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