Cast char to enum language C
Fermé
Morendo
-
18 juin 2011 à 14:06
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 19 juin 2011 à 19:48
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 19 juin 2011 à 19:48
A voir également:
- Cast char to enum language C
- Chrome cast sur tv - Guide
- Qwerty to azerty - Guide
- 1 to ✓ - Forum Windows
- Press del to enter setup ✓ - Forum Windows
- Video to video - Télécharger - Conversion & Codecs
1 réponse
Voila ce qui arrive quand on parle trop vite..
http://cboard.cprogramming.com/c-programming/60392-i-fail-conve rt-char-*-enum.html
le code contient quelques erreur notamment dans currency_et GetEnumFromString
error : reach end of a non void function
en esperant que cela aidera certains
Bonne journée
#include <stdio.h> #include <string.h> typedef enum { C_EURO, C_STERLING, C_DOLLARS } currency_et; currency_et GetEnumFromString ( const char *s ) { static struct { const char *s; currency_et e; } map[] = { { "C_EURO", C_EURO }, { "C_STERLING", C_STERLING }, { "C_DOLLARS", C_DOLLARS }, }; int i; for ( i = 0 ; i < sizeof(map)/sizeof(map[0]); i++ ) { if ( strcmp(s,map[i].s) == 0 ) { return map[i].e; } } } int main ( ) { currency_et var; var = GetEnumFromString( "C_STERLING" ); printf( "Result=%d\n", (int)var ); return 0; }
http://cboard.cprogramming.com/c-programming/60392-i-fail-conve rt-char-*-enum.html
le code contient quelques erreur notamment dans currency_et GetEnumFromString
error : reach end of a non void function
en esperant que cela aidera certains
Bonne journée
Modifié par fiddy le 18/06/2011 à 15:58
Pour l'erreur, c'est parce que le return n'est pas appelé dans tous les cas dans la fonction GetEnumFromString.
18 juin 2011 à 17:09
18 juin 2011 à 17:34
Modifié par fiddy le 18/06/2011 à 17:52
Non, je ne pense pas. Si sa fonction sort de la boucle for sans avoir fait de return, c'est que la conversion n'a pas eu lieu. Enfin, de ce que je comprends.
@Morendo,
C'est pas terrible de mettre EXIT_FAILURE. Le mieux serait de mettre return -1;. Cela te permettrait de tester la valeur de retour et qu'elle soit différente des autres en cas d'erreur.
19 juin 2011 à 19:48