MinGW GCC: “Carácter de tipo de conversión desconocido 'h'” (snprintf)
De acuerdo, me he encontrado con un problema extraño al compilar un archivo C con MinGW (GCC 4.6.2) en Windows 7. El archivo en cuestión contiene el siguiente código C:
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("%2hhX\n", 250);
char c[80];
snprintf(c, sizeof(c), "%2hhX", 250);
printf("%s\n", c);
return 0;
}
La compilación resulta así:
$ gcc.exe -std=c99 -pedantic -Wall test.c
test.c: In function 'main':
test.c:6:2: warning: unknown conversion type character 'h' in format [-Wformat]
test.c:6:2: warning: too many arguments for format [-Wformat-extra-args]
Ahora, lo que me extraña es que se queja de lasnprintf
llame a la línea 6, pero no a laprintf
llame a la línea 4. ¿Me falta algo o la advertencia es incorrecta? Además, ¿hay tal vez un mejor equivalente para la cadena de formato"%2hhX"
? (Estoy tratando de imprimir las variables char como valores hexadecimales).