Ein char ist halt gut genug, ein character, einen Buchstaben zu speichern. Buchstaben haben nichts ansich, was die Bedeutung eines Vorzeichens hat. Deswegen macht signed oder unsigned bei Buchstaben keinen Sinn und ist für ein char nicht vorgegeben. Überhaupt macht das Rechnen mit Buchstaben keinen Sinn (außer so ein paar Tricks die Groß in Kleinbuchstaben rechnen o.ä.).
Wenn ich eine Ganzzahl, einen Integer, haben möchte, der in 8 Bit passt, dann sollte ich das auch so sagen: int8_t. Da gibts dann keine Zweideutigkeiten oder Compilerabhängigkeiten. Obwohl man bei den heute verfügbaren Speichergrößen das einfach knicken und int nehmen sollte: dann klappts auch mit dem Nachbarn, äh mit jedem anderen Prozessor oder Kompiler
MfG Klebwax