Are C/C++ chars signed or unsigned? What a mess!