The standard doesn’t specify if char should be signed or unsigned. Different compilers implement it differently, or might allow to change it using a command line switch.