Všechny základní číselné typy jsou znaménkové. char je -128 .. 127. unsigned char je 0 .. 255.
Jestli s tím polem chceš různě operovat jako s textovým řetězcem i jako s polem bajtů, tak to můžeš podle potřeby vždycky přetypovat (pořád jsou to jen data v paměti, jen říkáš jak je interpretovat). Pokud to má být jen textový řetězec, tak prostě vyhoď to unsigned.
záliba v sizeof.. Někde si přečti, jak ten operátor funguje. Pokud máš statické pole jehož velikost je dána makrem, používej toto makro. Je to "čitelnější" a hlavně: jestli použiješ někde ukazatel na toto pole, vyhneš se problému, který jsi nedávno řešil.