¿Por qué los estándares C o C ++ no definen explícitamente el carácter char como unsigned o unsigned?

int main()
{
    char c = 0xff;
    bool b = 0xff == c;
    // Under most C/C++ compilers' default options, b is FALSE!!!
}

Ni el estándar C o C ++ especifican que el carácter como firmado o sin firmar está definido por la implementación.

¿Por qué el estándar C / C ++ no define explícitamente el carácter como firmado o no firmado para evitar usos incorrectos peligrosos como el código anterior?

Respuestas a la pregunta(2)

Su respuesta a la pregunta