QUOTE (kolobochishe @ Apr 11 2012, 09:39)

Текст предупреждения:
Все верно. char, signed char и unsigned char - три разных типа. Стандарт допускает, что char реализуется как signed или unsigned char, но не оговаривает, какой именно (в большинстве компиляторов это можно задать ключем командной строки). Поэтому правило простое - если речь идет о
символах - используем char без квалификаторов. Если же речь идет о
байте - то unsigned либо signed char, а еще лучше - (u)int(_fast)8_t из stdint.h