MinGW GCC: "Unbekanntes Konvertierungszeichen 'h'" (snprintf)

Okay, ich bin auf ein seltsames Problem beim Kompilieren einer C-Datei mit MinGW (GCC 4.6.2) unter Windows 7 gestoßen. Die betreffende Datei enthält den folgenden C-Code:

#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;
}

Die Zusammenstellung sieht folgendermaßen aus:

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

Nun, was mir seltsam ist, dass es sich über das beklagtsnprintf Rufen Sie auf Leitung 6 an, aber nicht dieprintf Rufen Sie in der Leitung 4 an. Fehlt mir etwas oder ist die Warnung einfach falsch? Gibt es vielleicht auch eine bessere Entsprechung für die Formatzeichenfolge"%2hhX"? (Ich versuche, Zeichenvariablen als Hexadezimalwerte zu drucken.)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage