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 :

Un doute avec les prototypes


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 103
    Par défaut Un doute avec les prototypes
    Bonsoir a tous

    Pouvez vous me dire si ces 3 prototypes sont identiquent?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char* strpbrk(const char* chaine, const char* lettresARechercher);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char *strpbrk(const char *chaine, const char *lettresARechercher);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char strpbrk[](const char chaine[], const char lettresARechercher[]);

    Car un membre du forum m'avait dit ça :


    Parce que le [] se place après le nom de la variable, alors que le * se place avant le nom de la variable.

    L'écriture char* var est correcte, l'écriture char *var aussi, mais cette dernière répond probablement mieux à ta question.

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Le prototype, c'est tout ce qu'il y a avant le point-virgule. Un prototype suivi d'un point-virgule, c'est une déclaration. Voilà pour la terminologie .

    Les premier et deuxième prototypes sont identiques, il n'y a aucune différence. Que ce soit à gauche ou à droite d'un *, tu peux mettre autant d'espaces que tu veux comme tu peux ne pas du tout en mettre. C'est valable pour n'importe quel autre symbole d'opérateur, pas pour * seulement.

    Le troisième n'est même pas un prototype valide, une fonction ne peut pas retourner un tableau (et même si elle le pouvait, la syntaxe n'est toujous pas valide mais n'entrons pas dans ce détail). Une fonction peut cependant retourner un pointeur sur un élément d'un tableau. Pareil pour les arguments, on ne peut passer qu'un pointeur, pas un tableau, mais le compilateur est plus tolérent pour ce cas : chaque fois quuntableau apparaît en argument dans la déclaration d'une fonction, il est automatiquement transformé en pointeur. Donc la troisième forme devrait s'écrire par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char * strpbrk(const char chaine[], const char lettresARechercher[]);
    C'est strictement la même chose que les deux premières déclarations.

Discussions similaires

  1. probleme avec les processus
    Par saidi dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/02/2003, 00h18
  2. Pb avec les menus
    Par Ph. B. dans le forum XMLRAD
    Réponses: 6
    Dernier message: 29/01/2003, 11h57
  3. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59
  4. PB d'import avec les ActiveX sous BCB6
    Par dergen dans le forum C++Builder
    Réponses: 4
    Dernier message: 29/11/2002, 10h18
  5. Pbm avec les '&'...
    Par AmaX dans le forum Composants VCL
    Réponses: 2
    Dernier message: 19/08/2002, 11h08

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