Question sur le C

Résolu
cs_zoneart Messages postés 5 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 21 mars 2010 - 21 mars 2010 à 13:07
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 - 21 mars 2010 à 19:42
Bonjour,

J'ai une question sur le C:

void exemple(const *char);

int main(void)
{
char nom[20];
memset (nom, 0, 20);

printf ("Entrez un nom : ");
scanf ("%s", nom);

exemple(nom);

return EXIT_SUCCESS;

}

void exemple(const *char)
{
....
....
}


Est-il correct d'écrire ça comme ça sachant que la fonction "exemple" attend une constante ou est-ce moi qui comprend mal ?

Autrement dit est-il possible de passer une variable à la fonction "exemple" ?

Je pose cette question parce que toute les fonction de la librairie libxml se présente sous cette forme (avec des const *char) et je souhaiterais choisir le nom en le saisissant plutot que de l'imposer dans le code.

En espérant avoir été clair, je vous remercie pour vos lumières.


Bonne journée.

4 réponses

cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
21 mars 2010 à 16:57
Le mot clé const signifie (dans ce cas) que la valeur (éventuellement pointée par) le paramètre ne sera pas modifiée. Avec la version actuelle de ton code, si dans la fonction exemple() tu fais printf(var); il affichera le nom entré précédemment par l'utilisateur.
---
VB.NET is good ... VB6 is better
3
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
21 mars 2010 à 19:42
Ah il manquait un bout de mon explication :
Le mot clé const signifie (dans ce cas) que la valeur (éventuellement pointée par) le paramètre ne sera pas modifiée par la fonction.

---
VB.NET is good ... VB6 is better
3
cs_zoneart Messages postés 5 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 21 mars 2010
21 mars 2010 à 15:45
excusez moi je remarque une faute dans la déclaration de la fonction qui ne va certainement pas aider à une réponse de votre part.

Erreur : void exemple(const *char);
Correction : void exemple(const char *var);


Sorry, Merci pour votre aide
0
cs_zoneart Messages postés 5 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 21 mars 2010
21 mars 2010 à 17:08
Ok, mais ça ne veut pas dire que le paramètre envoyé à la fonction ne peut pas être modifié avant l'appel de la fonction ?

Par exemple il est tout à fait possible de faire un scanf et de saisir une valeur de variable puis de l'envoyer à la fonction ?

On ne doit pas l'inscrire "en dur" dans le code ?

Pardon, je sens que ma question est stupide mais je ne comprenais pas très bien le terme de const.

C'est à dire que la variable est constante (non modifiable) dans la fonction ?


Merci
0