Je suis en train de faire une macro en C qui peut dire si un caractère est un nombre hexadécimal (0-9 az AZ)définir macro en C ne fonctionnera pas
#define _hex(x) (((x) >= "0" && (x) <= "9")||((x) >= "a" && (x) <= "z") || ((x) >= "A" && (x) <= "Z") ? "true" : "false")
Ce que j'ai venir avec, mais il ne fonctionne pas avec une boucle comme celui-ci
char a;
for(a = "a" ; a < "z";a++){
printf("%s => %s",a, _hex(a));
}
donne une erreur
test.c:8: warning: assignment makes integer from pointer without a cast
test.c:8: warning: comparison between pointer and integer
test.c:9: warning: comparison between pointer and integer
test.c:9: warning: comparison between pointer and integer
test.c:9: warning: comparison between pointer and integer
test.c:9: warning: comparison between pointer and integer
test.c:9: warning: comparison between pointer and integer
test.c:9: warning: comparison between pointer and integer
Ce n'est pas ce que signifie le nombre hexadécimal. Un chiffre hexadécimal est 0-9 ou A-F. Vous vérifiez si un caractère est alphanumérique. –