MinGW GCC: “Caractere de tipo de conversão desconhecido 'h'” (snprintf)
Ok, eu me deparei com um estranho problema ao compilar um arquivo C com MinGW (GCC 4.6.2) no Windows 7. O arquivo em questão contém o seguinte 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;
}
A compilação é assim:
$ 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]
Agora, o que é estranho para mim é que se queixa dosnprintf
chamar na linha 6, mas não oprintf
ligar para a linha 4. Estou faltando alguma coisa ou o aviso está incorreto? Além disso, há talvez um equivalente melhor para a string de formato"%2hhX"
? (Estou tentando imprimir variáveis char como valores hexadecimais).