MinGW GCC: „Nieznany znak typu konwersji„ h ”” (snprintf)

Dobra, natknąłem się na dziwny problem kompilowania pliku C z MinGW (GCC 4.6.2) w systemie Windows 7. Ten plik zawiera następujący kod 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;
}

Kompilacja wygląda tak:

$ 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]

Dziwne jest to, że narzeka nasnprintf zadzwoń na linię 6, ale nie naprintf zadzwonić na linię 4. Czy czegoś brakuje lub czy ostrzeżenie jest nieprawidłowe? Jest też prawdopodobnie lepszy odpowiednik ciągu formatującego"%2hhX"? (Próbuję wydrukować zmienne znakowe jako wartości szesnastkowe.)

questionAnswers(2)

yourAnswerToTheQuestion