Cast char to enum language C
Fermé
Morendo
-
18 juin 2011 à 14:06
Pacorabanix Messages postés 3245 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 3245 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
- Youtube to mp4 conconventer - Forum Vidéo/TV
- Cam to cam - Forum Internet / Réseaux sociaux
- Qwerty to azerty - Guide
- 1 to ✓ - Forum Windows
- Convertisseur youtube to mp3 conconventer ✓ - Forum Logiciels
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